簡體   English   中英

如何正確導出節點js中的要求?

[英]How to correctly export and require in node 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. 您的示例至少無法正常工作,因為您在兩個文件var app = express()中都聲明了兩個單獨的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中進行導出/請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM