从server.js文件中分离快速api数据库

时间:2017-04-09 14:44:20

标签: javascript node.js express server

我是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文件上以及其他文件上的其他内容并导入或填充它们。

感谢。

1 个答案:

答案 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');