如何正确地在节点js中导出和要求? [英] How to correctly export and require in node js?

查看:106
本文介绍了如何正确地在节点js中导出和要求?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在node/express中读到了一篇关于导出/需要的教程,不知道是否有人可以用我的例子给我解释一下: 为什么我在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')));
    }

推荐答案

  1. 您的示例将无法正常工作,至少是因为您在两个文件中声明了两个单独的Express服务器var app = express()
  2. 此代码不是最适合用于导出/请求的代码,因为此类服务器初始化通常放在一个文件中。

但不管怎样,如果你想使用这个例子并让它工作,我们就这样做:

./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中的导出/要求。

这篇关于如何正确地在节点js中导出和要求?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆