NodeJS(Mongoose & ExpressJS)を使用してREST APIを構築しています。現時点では基本的な構造はかなり良いと思いますが、このようなプロジェクトのベストプラクティスが何であるか不思議です。ExpressJS&Mongoose REST API構造:ベストプラクティス?
この基本バージョンでは、すべてがapp.js
ファイルを通過します。すべてのHTTPメソッドは、要求されたリソースに渡されます。これにより、APIにリソースを動的に追加することができ、すべてのリクエストがそれに応じて渡されます。説明するために:
// app.js
var express = require('express');
var mongoose = require('mongoose');
var app = express();
app.use(express.bodyParser());
mongoose.connect('mongodb://localhost/kittens');
var db = mongoose.connection;
var resources = [
'kitten'
];
var repositories = {};
for (var i = 0; i < resources.length; i++) {
var resource = resources[i];
repositories[resource] = require('./api/' + resource);
}
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback() {
console.log('Successfully connected to MongoDB.');
app.get('/:resource', function (req, res) {
res.type('application/json');
repositories[req.params.resource].findAll(res);
});
app.get('/:resource/:id', function (req, res) {
res.type('application/json');
repositories[req.params.resource].findOne(req, res);
});
app.listen(process.env.PORT || 4730);
});
- 明らかに
// api/kitten.js
var mongoose = require('mongoose');
var kittenSchema = mongoose.Schema({
name: String
});
var Kitten = mongoose.model('Kitten', kittenSchema);
exports.findAll = function (res) {
Kitten.find(function (err, kittens) {
if (err) {
}
res.json(kittens);
});
};
exports.findOne = function (req, res) {
Kitten.findOne({ _id: req.params.id}, function (err, kitten) {
if (err) {
}
res.json(kitten);
});
};
、メソッドの唯一のカップルは、これまで実施されています。あなたはこのアプローチについてどう思いますか?私が改善できるものは何ですか?
また、小さい側の質問:私はapi\kitten.js
で、ちょうどグローバルapp.jsファイルか何かでそれを必要とする方法があるように(すべてのAPIリソースファイルでマングースを要求する必要が
任意の入力?大歓迎です!