Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在NodeJS中导入和导出文件?_Javascript_Node.js_Express_Npm_Node Modules - Fatal编程技术网

Javascript 如何在NodeJS中导入和导出文件?

Javascript 如何在NodeJS中导入和导出文件?,javascript,node.js,express,npm,node-modules,Javascript,Node.js,Express,Npm,Node Modules,主JS文件 有问题的JS文件 我一直在开发一个API,但是,路由似乎不起作用。我已经克服了一些问题,但是,这是最影响我的问题 C:\Users\-----\WebstormProjects\BoR-CORE\routes\v1\account.js:3 let router = express.Router(); ^ TypeError: Cannot read property 'Router' of undefined at Object.

主JS文件

有问题的JS文件

我一直在开发一个API,但是,路由似乎不起作用。我已经克服了一些问题,但是,这是最影响我的问题

C:\Users\-----\WebstormProjects\BoR-CORE\routes\v1\account.js:3
let router = express.Router();
                     ^

TypeError: Cannot read property 'Router' of undefined
    at Object.<anonymous> (C:\Users\-----\WebstormProjects\BoR-CORE\routes\v1\account.js:3:22)
    at Module._compile (module.js:660:30)
    at Object.Module._extensions..js (module.js:671:10)
    at Module.load (module.js:573:32)
    at tryModuleLoad (module.js:513:12)
    at Function.Module._load (module.js:505:3)
    at Module.require (module.js:604:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (C:\Users\-----\WebstormProjects\BoR-CORE\app.js:17:15)
    at Module._compile (module.js:660:30)
C:\Users\----\webstoreprojects\BoR CORE\routes\v1\account.js:3
让router=express.router();
^
TypeError:无法读取未定义的属性“Router”
反对。(C:\Users\----\webstoreprojects\BoR CORE\routes\v1\account.js:3:22)
在模块处编译(Module.js:660:30)
在Object.Module.\u extensions..js(Module.js:671:10)
在Module.load(Module.js:573:32)
在tryModuleLoad时(module.js:513:12)
在Function.Module.\u加载(Module.js:505:3)
at Module.require(Module.js:604:17)
根据需要(内部/module.js:11:18)
反对。(C:\Users\----\webstoreprojects\BoR CORE\app.js:17:15)
在模块处编译(Module.js:660:30)

您应该像导出模块一样导出路由器。导出=路由器

我想问题出在您的第二个文件中

与其要求主应用程序获取express对象,不如只要求(“express”)本身


我认为应该这样做

在我看来,您导出了错误的文件。您需要导出路由器并将其导入
app.js

这应该是这样的:

//File router/index.js
const user         = require('./user'),
      error        = require('./error'),
      response     = require('./response');

module.exports = function(app) {

    app.get('/v1/details', user.checkUser, user.getDetails, response.sendResponse);

    app.post('/v1/details', user.checkUser, user.insertDetails, response.sendResponse);

};



//Your `app.js`

"use strict";
//NPM Modules
const express           = require('express'),
      path              = require('path'),
      cookieParser      = require('cookie-parser'),
      bodyParser        = require('body-parser'),
      //Internal Modules
      router            = require('./router');

var app = express();

// configure the app to use bodyParser()
app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(bodyParser.json());

console.log('server listening at 127.0.0.1 over port 2318'.info);

app.use(cookieParser());
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.static(path.join(__dirname, 'public')));

router(app);

let port = process.env.PORT || 8080;
app.listen(port);

我认为
main.js
中的最后一行应该是
module.exports={express}
我在这里举了一个例子,这可能会对您有所帮助