我有这段代码:
var express = require("express");
var app = express();
var path = require("path");
app.use(express.static(__dirname + '/public'));
app.get('/',function(req,res){
res.sendFile(path.join(__dirname+'/views/index.html'));
res.set('Access-Control-Allow-Origin', '*');
}).listen(3000);
console.log("Running at Port 3000");
app.get('/test', function(req, res) {
res.json(200, {'test': 'it works!'})
})
我会提供很多服务(例如test
),而且我不想将它们全部放在同一个文件中。
我在Stack Overflow中读到另一个问题,我可以要求这样的其他文件:var express = require("./model/services.js");
并在该文件中写下所有服务,但是当我开始时它会抛出app is not defined
节点
如何分开代码?
答案 0 :(得分:7)
您可以在不同的文件中定义您的路线,例如 test-routes.js :
module.exports = function (app) {
app.get('/test', function(req, res) {
res.json(200, {'test': 'it works!'})
})
}
现在在您的主文件中说 server.js ,您可以像这样导入路径文件:
var express = require("express");
var app = express();
var path = require("path");
app.use(express.static(__dirname + '/public'));
app.get('/',function(req,res){
res.sendFile(path.join(__dirname+'/views/index.html'));
res.set('Access-Control-Allow-Origin', '*');
}).listen(3000);
console.log("Running at Port 3000");
// import your routes
require('./test-routes.js')(app);
答案 1 :(得分:4)
您的test.js
应该类似于:
var express = require('express');
var router = express.Router();
router.get('/test', function (req, res) {
res.json(200, {'test': 'it works!'});
});
module.exports = router;
和app.js
(假设其他路由定义与test.js类似):
var test = require("./routes/test.js");
var other = require("./routes/other.js");
...
//all your code for creating app
...
app.use('/test', test);
app.use('/other', other);