![](/img/trans.png)
[英]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.