我是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
文件上以及其他文件上的其他内容并导入或填充它们。
感谢。
答案 0 :(得分:0)
如果使用express cli生成器(https://expressjs.com/en/starter/generator.html)来生成项目,您将看到默认情况下如何将api逻辑与app.js(=您的server.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;
接下来,如果你想将数据库内容存储在一个额外的文件中,你可以创建一个模型文件夹来声明你的模式(如果你使用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');