Node.js全局变量调用失败:提示变量未定义问题求助
解决全局变量未定义的问题
你的问题根源在于:response.model.js导出的是一个函数,但你在server.js里仅引入了这个文件,却没有执行该函数,导致successModel和failModel这两个全局变量从未被创建,控制器调用时自然会提示“变量未定义”。
修复步骤及代码修正
执行全局变量初始化函数
修改server.js中引入response.model.js的代码,添加函数调用:// 原代码 require('./models/response.model') // 修改后 require('./models/response.model')()修正拼写错误(可选但建议)
response.model.js里的successModel的status字段拼写错误(sucess→success),避免后续逻辑出现不必要的问题:module.exports = function () { global.successModel = { status: 'success', // 修正拼写 statusCode: 0, isSuccess: true, message: '' } global.failModel = { status: 'failed', statusCode: 1, isSuccess: false, message: 'Error encountered while processing request.' } }优化控制器代码
monggo.controller.js存在几个小问题,一并修正:// 先确保引入Product模型(替换为实际路径) const Product = require('../models/product.model') exports.getProducts = async (req, res) => { try { // 改用async/await写法,更符合函数风格 const product = await Product.find({}); // 可以根据需求给successModel补充数据,比如data: product res.send({...successModel, data: product}); } catch (err) { res.send(err); } // 删除无意义的await res;语句 }
内容的提问来源于stack exchange,提问作者John Nico Novero
相关产品推荐
相关产品推荐

