[英]Passing global Javascript variables through callback functions to other JS files
[英]How to access global scope variables in callback functions? [JS]
对于我的用户注册,我有
const express = require ('express');
const userRouter = express.Router ();
userRouter.get ('/', function getUserList (req, res) {
let User = require ('../models').User;
User.find ({}, function (err, list) {
res.json (list);
});
});
userRouter.post ('/', function createUser (req, res) {
let User = require ('../models').User;
if (req.body.username && req.body.password)
User.create (req.body, function (err, user) {
res.json (user);
});
});
... 3 more functions with the same `let User` ...
module.exports = userRouter;
在这里,我必须两次require
模块型号。 我尝试将User变量设置为程序顶部的全局变量,例如
const express = ..., userRouter = ...
var User = ...
但是,在我的回调函数中仍无法访问此User变量。
是否多次要求用户模块是执行此操作的正确方法,还是我遗漏了某些东西?
编辑 :在回调函数中,用户变量未定义。
如@Doug所述,您应该像这样将global
传递给用户变量:
global.user = ...
此过程实质上将user
变成了全局可访问变量。 您可以在此处阅读有关Node global
更多信息,以了解它的功能以及它的含义: http : //stackabuse.com/using-global-variables-in-node-js/
要指出@charloetfl是否位于文件内,应该在回调之外或文件顶部声明它。 如果我们要讨论的是对项目中所有模块和文件的访问,则将其添加到全局对象是在节点中进行处理的方式,如@doug和@andrewl所述。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.