如何在节点js中正确导出和要求?
How to correctly export and require in node js?
我在 node/express 中阅读了有关 export/require 的教程,想知道是否有人可以用我的示例向我解释:
为什么我在 app.js 中的路由不起作用?我必须导出什么并需要什么才能使其工作?非常感谢!
index.js:
'use strict'
var express = require('express');
var app = express();
module.exports = app;
var PORT = process.env.PORT || 1337;
app.listen(PORT, function() {
console.log('Server is listening!');
})
app.js:
var express = require('express');
var bodyParser = require('body-parser');
var path = require('path');
var app = express();
//var app=require('./index.js');
module.exports = function() {
app.use(express.static(path.join(__dirname, '../public')));
app.use(express.static(path.join(__dirname, '../browser')));
}
- 您的示例将无法正常工作,至少因为您在两个文件中声明了两个单独的快速服务器
var app = express()
。
- 这段代码不是最适合在exporting/requiring中练习的,因为这样的服务器初始化通常放在一个文件中。
但是无论如何,如果您想使用这个示例并让它工作,让我们以这种方式进行:
./ index.js
'use strict'
var express = require('express');
var setupServing = require('./setupServing.js'); //import our function
var PORT = process.env.PORT || 1337;
var app = express(); //create express app
setupServing(app); //call imported function to config our app
app.listen(PORT, function() { //start
console.log('Server is listening!');
})
./ setupServing.js
var express = require('express');
var path = require('path');
//export function which can configure static serve for app
module.exports = function(app) { //take app as an argument
app.use(express.static(path.join(__dirname, '../public')));
}
请注意,此示例仍然不够合乎逻辑,我认为您不会在任何实际项目中遇到此类代码,但无论如何它会在 nodejs 中运行并演示 exporting/requiring。
我在 node/express 中阅读了有关 export/require 的教程,想知道是否有人可以用我的示例向我解释: 为什么我在 app.js 中的路由不起作用?我必须导出什么并需要什么才能使其工作?非常感谢!
index.js:
'use strict'
var express = require('express');
var app = express();
module.exports = app;
var PORT = process.env.PORT || 1337;
app.listen(PORT, function() {
console.log('Server is listening!');
})
app.js:
var express = require('express');
var bodyParser = require('body-parser');
var path = require('path');
var app = express();
//var app=require('./index.js');
module.exports = function() {
app.use(express.static(path.join(__dirname, '../public')));
app.use(express.static(path.join(__dirname, '../browser')));
}
- 您的示例将无法正常工作,至少因为您在两个文件中声明了两个单独的快速服务器
var app = express()
。 - 这段代码不是最适合在exporting/requiring中练习的,因为这样的服务器初始化通常放在一个文件中。
但是无论如何,如果您想使用这个示例并让它工作,让我们以这种方式进行:
./ index.js
'use strict'
var express = require('express');
var setupServing = require('./setupServing.js'); //import our function
var PORT = process.env.PORT || 1337;
var app = express(); //create express app
setupServing(app); //call imported function to config our app
app.listen(PORT, function() { //start
console.log('Server is listening!');
})
./ setupServing.js
var express = require('express');
var path = require('path');
//export function which can configure static serve for app
module.exports = function(app) { //take app as an argument
app.use(express.static(path.join(__dirname, '../public')));
}
请注意,此示例仍然不够合乎逻辑,我认为您不会在任何实际项目中遇到此类代码,但无论如何它会在 nodejs 中运行并演示 exporting/requiring。