Nodejsでmongodbを書いて操作してC〓風を書きます.
2324 ワード
ブロガーは初期にC((zhi)を書いていました.linqとlambada表現の書き方が大好きで、nodeを書いたら同じjavascript系のmongodbだと思っていましたが、nodeの下に書くとccaよりもっと快適になるはずです.最近はtyperxが語源となりましたので、この楽しい書き方を皆さんと共有してみてください.
初期化項目とモジュールの取り付け
インターフェースを作成
example.service.tsを作成します.
呼び出し例のtest.tsを作成します.
サンプルコードhttps://github.com/vellengs/typerx-blogs
もっと多くの使用方法をtyperxに参照してください.
初期化項目とモジュールの取り付け
npm init
npm install mongoose bluebird --save
npm install @types/bluebird @types/mongoose @types/node --save-dev
連結文字列モジュールconnector.tsを作成します.import * as mongoose from 'mongoose';
import bluebird from 'bluebird';
export function connect(uri: string) {
(mongoose).Promise = bluebird;
mongoose.connect(uri);
const db = mongoose.connection;
db.on('error', (err: any) => {
throw new Error('unable to connect to database at ' + uri + err);
});
}
schemaを作成import { Schema, SchemaTypes as t, SchemaOptions, model } from 'mongoose';
export const ExampleSchema = new Schema({
title: t.String,
content: t.Mixed
},
{ timestamps: true });
timestampsパラメータを使用すると、自動的に2つの時間フィールドを維持できます.インターフェースを作成
export class Example {
id: string;
title: string;
content: string;
}
databaseモジュールを作成import { model, Document } from 'mongoose';
import { Example } from './interfaces/example.interface';
import { ExampleSchema } from './schemas/example.schema';
export const ModuleDatabase = {
Example: model('Example', ExampleSchema),
};
ここがタイプペアリングのポイントです.example.service.tsを作成します.
import { ModuleDatabase as Db } from './modules/module.database';
export class ExampleService {
async findOneByTitle(title: string) {
return Db.Example.findOne({ title: title }).exec();
}
}
ここでDbをノックします.Db.Exampleなどはそれぞれのタイプのインターフェースを呼び出すことができます.とても便利です.呼び出し例のtest.tsを作成します.
import { connect } from './connector';
import { ExampleService } from './example.service';
connect('mongodb://localhost/example');
const service = new ExampleService();
service.findOneByTitle('hello').then(res => console.log('title', res.title));
ここでresを叩きます.titleを呼び出すことができます.サンプルコードhttps://github.com/vellengs/typerx-blogs
もっと多くの使用方法をtyperxに参照してください.