gpt4 book ai didi

javascript - Node.js 从其他函数调用函数不起作用

转载 作者:行者123 更新时间:2023-12-03 05:44:03 30 4
gpt4 key购买 nike

Profile.js 代码如下

'use strict';
var service = require('../services/Profile');
class Profile {
updateProfile(req, resp) {
this.updateUserDetails(req, resp);
}
updateUserDetails(req, resp){
var admin = req.body;
resp.json({"success":true,"message":"User Updated"});
}
}
module.exports = new Profile();

server.js 代码如下

...... Some code -------

var profile = require("./controllers/Profile")
app.put("/api/profile", auth, profile.updateProfile);


...... Some code -------

当我调用电话时<>/api/profile 我收到错误

TypeError: Cannot read property 'updateUserDetails' of undefined ,
(at line number of code this.updateUserDetails(req, resp);)

由于有一些共同的逻辑,所以我需要移动到某个函数并想在不同的地方调用,但我收到了这个错误。我是 Node js 新手,寻求帮助。

最佳答案

这是对 JavaScript 中 this 工作方式的典型误解。我建议您在 stackoverflow 中搜索短语“这在 javascript 中如何工作”

对于您的代码,您需要执行以下操作:

app.put("/api/profile", auth, function (req,res) {
profile.updateProfile(req,res)
});

或者这个:

app.put("/api/profile", auth, profile.updateProfile.bind(profile));

关于javascript - Node.js 从其他函数调用函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40404498/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com