[英]Separate express api database from server.js file
我是Node.js的新手,所以这个问题也是如此。
我正在使用此示例,请在下面查看此链接。
https://github.com/sahat/newedenfaces-react/blob/master/server.js
在此server.js文件中,程序员正在调用
mongoose.connect(config.database);
app.get('/api/characters', function(req, res, next) {}
等等
全部在server.js文件中
我要保持一切清洁
然后做
server.listen(app.get('port'), function() {}
在server.js
文件上,将其余内容放在其他文件上,然后导入或填充它们。
谢谢。
如果您使用express cli生成器( https://expressjs.com/en/starter/generator.html )生成项目,则将看到默认情况下express如何将api逻辑与app.js(=服务器)分开。 js文件)。
您必须在app.js中声明存储控制器的特定逻辑的位置
var users = require('./routes/users');
然后应该为该控制器使用哪个路由。
app.use('/users', users);
然后,您可以在其中创建一个名为users.js的文件,并将逻辑放在此处( users.js )
var express = require('express');
var router = express.Router();
/* this is the route "/users/" as "/users" is defined in app.js to use that controller and / is defined here */
router.get('/', function(req, res, next) {
res.send('respond with a resource');
});
module.exports = router;
接下来,如果要将数据库内容存储在一个额外的文件中,则可以创建一个models文件夹来声明您的模式(如果使用mongoose):
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var schema = new Schema({
firstName: {type: String, required: true},
lastName: {type: String, required: true},
email: {type: String, required: true, unique: true},
});
module.exports = mongoose.model('User', schema);
然后可以将其导入到用户的路由文件中
var User = require('../models/user');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.