Node.js 为什么可以';t导出/导入const app=express到另一个js文件

Node.js 为什么可以';t导出/导入const app=express到另一个js文件,node.js,express,Node.js,Express,我试图将责任分开,在不同的文件和模块中划分我将在服务器端的应用程序中执行的不同操作 我遇到了一个我无法理解的问题。我尝试从启动服务器的文件导出变量app,在该变量中,我以以下方式存储express: server.js apiGoogleMaps.js 地址 在apiGoogleMaps.js文件中使用路由器并将其导出,而不是导出作为整个服务器主干的应用程序 成功使用app.js文件中的路由器!:D birds.route.js var express = require('express')

我试图将责任分开,在不同的文件和模块中划分我将在服务器端的应用程序中执行的不同操作

我遇到了一个我无法理解的问题。我尝试从启动服务器的文件导出变量
app
,在该变量中,我以以下方式存储
express

server.js apiGoogleMaps.js 地址

apiGoogleMaps.js
文件中使用路由器并将其导出,而不是导出作为整个服务器主干的应用程序

成功使用
app.js
文件中的路由器!:D

birds.route.js

var express = require('express')
var router = express.Router()

router.get('/', function (req, res) {
    res.send('Birds home page')
})
router.get('/:id', function (req, res) {
    res.send(req.params.id);
    })
module.exports = router
const myBirds = require('./birds');
...
...
app.use('/birds', myBirds);
app.js

var express = require('express')
var router = express.Router()

router.get('/', function (req, res) {
    res.send('Birds home page')
})
router.get('/:id', function (req, res) {
    res.send(req.params.id);
    })
module.exports = router
const myBirds = require('./birds');
...
...
app.use('/birds', myBirds);

此错误是由
server.js
中用作中间件的网页包导入引起的:

import webpack from 'webpack';
import webpackDevMiddleware from 'webpack-dev-middleware';
import webpackConfig from '../webpack.config';
import path from 'path';

const app = express();

app.set('port', process.env.PORT || 3000);

app.use(webpackDevMiddleware(webpack(webpackConfig)));
堆栈跟踪的显示帧为:

[1]  @ (webpack)/lib/WebpackOptionsDefaulter.js
[1]  @ (webpack)/lib/webpack.js
[1]  @ ./src/server.js
由于webpack使用的动态导入,您似乎无法将webpack包含在webpack捆绑包中,至少不能通过导入它

express
(特别是
express.view
)也会出现相同的错误,解释如下:

ExpressJS中有一个动态需求:


您可以将
express
(和/或
webpack
)标记为,以防止它们包含在捆绑包中(我没有使用此库,它与问题相关)。

但是问题发生在
apiGoogleMaps
,无法导入
应用程序,无论如何,我将尝试,稍后再回答,显示,
app.post(apiUrl,function(req,res){[0]^[0][0]类型错误:无法读取未定义的
的属性'post',这是一个不同的(可能不相关)问题。请检查带有新错误的作用域中的
应用程序的类型,由于某些原因它没有被加载。您有理由,至少其他问题没有发生
import webpack from 'webpack';
import webpackDevMiddleware from 'webpack-dev-middleware';
import webpackConfig from '../webpack.config';
import path from 'path';

const app = express();

app.set('port', process.env.PORT || 3000);

app.use(webpackDevMiddleware(webpack(webpackConfig)));
[1]  @ (webpack)/lib/WebpackOptionsDefaulter.js
[1]  @ (webpack)/lib/webpack.js
[1]  @ ./src/server.js