【问题标题】:TypeError: Cannot read property 'render' of undefined nodejs express mvcTypeError:无法读取未定义的nodejs express mvc的属性'render'
【发布时间】:2020-11-19 23:21:17
【问题描述】:

我正在尝试使用我的控制器中的这个函数在我的“主页”视图中呈现“结果”,它正在调用我的模型来进行查询。

exports.searchNoms = (req, res) => {
    getDatabaseModel.searchNoms(req).then(function(result) {
        console.log(result);
        res.render('Home/home-page', {
            nomenclature: result
        });
    }).catch((err) => setImmediate(() => {
        throw err;
    }))
};

我得到的结果显示了我想要的字符串。

然后我收到以下错误: TypeError: Cannot read property 'render' of undefined at C:\somepath\controllers\nomenclature.controller.js:36:14

我已经尝试了一些事情,如果我改变我的路由,在我的控制器中调用这个函数:

`router.post('/search-noms', function (req, res) {nomenclatureController.searchNoms(req.body.idNoms)})`

收件人:

`router.post('/search-noms', nomenclatureController.searchNoms)`

它有效。但我需要那个 body 参数才能实现我想做的事情。

我在这里错过了什么吗?

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    mark1:只需从你的 req.body 中获取 idNoms,然后将其放入 getDatabaseModel.searchNoms(idNoms) 即可。

    exports.searchNoms = (req, res) => {
        // mark1
        const idNoms = req.body.idNoms
    
        getDatabaseModel.searchNoms(idNoms).then(function(result) {
            console.log(result);
            res.render('Home/home-page', {
                nomenclature: result
            });
        }).catch((err) => setImmediate(() => {
            throw err;
        }))
    };
    

    然后在你的路由器中

    router.post('/search-noms', nomenclatureController.searchNoms)
    

    【讨论】:

    • 不敢相信我被卡住了 ;_;非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2017-03-06
    • 1970-01-01
    • 2022-09-23
    • 2022-11-29
    • 2021-07-06
    • 2017-08-30
    • 2017-10-11
    • 1970-01-01
    相关资源
    最近更新 更多