You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js全局变量调用失败:提示变量未定义问题求助

解决全局变量未定义的问题

你的问题根源在于:response.model.js导出的是一个函数,但你在server.js里仅引入了这个文件,却没有执行该函数,导致successModel和failModel这两个全局变量从未被创建,控制器调用时自然会提示“变量未定义”。

修复步骤及代码修正

  1. 执行全局变量初始化函数
    修改server.js中引入response.model.js的代码,添加函数调用:

    // 原代码
    require('./models/response.model')
    // 修改后
    require('./models/response.model')()
    
  2. 修正拼写错误(可选但建议)
    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.'
        }
    }
    
  3. 优化控制器代码
    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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 17:25:14