gpt4 book ai didi

node.js - 在 express.js 4 中包含所有路由的模块

转载 作者:搜寻专家 更新时间:2023-10-31 23:38:33 25 4
gpt4 key购买 nike

我正在使用 Express 4.2.0

是否可以在 app.js 中包含一个模块并在任何定义的路由中使用它?

现在这行不通:

app.js

//..
var request = require('request');

var routes = require('./routes/index');
var users = require('./routes/users');

app.use('/', routes);
app.use('/users', users);
//...


routes/user.js

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

router.get('/add', function(req, res) {
var session = req.session;
request('http://localhost:8181/Test?val1=getDepartments', function (error, response, body) {
//...
});

res.render('users/add');
});

module.exports = router;

会说routes/user.js中没有定义“request”

ReferenceError: request is not defined at Object.module.exports [as handle] (C:\inetpub\wwwroot\node7\routes\users. js:12:5)

必须在每个想要使用它们的路由中包含模块听起来不是一个合适的解决方案......

最佳答案

是的,在Node.js中有两种创建全局变量的方法,一种是使用global object,另一种是使用module.exports

方法是这样的

方法 1. 不使用 var 关键字声明变量。就像 importModName = require('modxyz') 一样,它将存储在全局对象中,因此您可以像 global.importModName

一样在任何地方使用它

方法 2. 使用导出选项。var importModName = require('modxyz');
module.exports = importModName ;
你可以在其他模块中使用它。

在这里查看更多解释 http://www.hacksparrow.com/global-variables-in-node-js.html

关于node.js - 在 express.js 4 中包含所有路由的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25937727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com