Javascript 如何将Node.js文件拆分为多个文件
我有以下代码:Javascript 如何将Node.js文件拆分为多个文件,javascript,node.js,Javascript,Node.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('Ac
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!'})
})
我会有很多服务(比如测试
一个),我不想把它们都放在同一个文件中
我在Stack Overflow中读到另一个问题,我可以要求其他类似的文件:var express=require(“./model/services.js”)
并在该文件中写入所有服务,但当我启动节点时,它会抛出未定义的app
如何分离代码?您可以在不同的文件中定义路由,比如test-routes.js,如下所示:
module.exports = function (app) {
app.get('/test', function(req, res) {
res.json(200, {'test': 'it works!'})
})
}
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);
现在,在主文件server.js中,您可以像这样导入路由文件:
module.exports = function (app) {
app.get('/test', function(req, res) {
res.json(200, {'test': 'it works!'})
})
}
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);
您的
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类似定义的其他路由):
您可以在名为
test.js
的不同文件中要求express
,并在其中包含所有测试代码。然后将其导出并稍后在主应用程序文件中调用。但是如果我在另一个文件中需要express
,我如何获取应用程序的实例?在这种情况下,我仍然存在相同的问题,我得到的错误是test.js中不存在应用程序