推送在节点 js 中不起作用

Push is not working in node js

这是代码

loginController.prototype.newUserValidation = function(name,email,username,password, callback){ 
    var errorMessage = {};
    var name = validator.trim(name);
    var email =validator.trim(email);
    var username = validator.trim(username);
    var password = validator.trim(password);

    if(!validator.isLength(name,1)){
         errorMessage.push("Name is required field");
    }
    if(!validator.isLength(email,1)){
        errorMessage.push("Email is required field");   
    } else if(!validator.isEmail(email)){
         errorMessage.push("Email is not valid");   
    }
    if(!validator.isLength(username,1)){
         errorMessage.push("username is required field");
    }
    if(!validator.isLength(password,1)){
         errorMessage.push("password is required field");
    }
    callback(errorMessage); 
}

出现此错误:

对象#没有方法'push'

TypeError: Object #<Object> has no method 'push'
    at Database.loginController.newUserValidation (/home/vinove/Desktop/AshutoshJha/controller/login-controller.js:49:16)
    at module.exports (/home/vinove/Desktop/AshutoshJha/routes/index.js:166:14)
    at Layer.handle [as handle_request] (/home/vinove/Desktop/AshutoshJha/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/vinove/Desktop/AshutoshJha/node_modules/express/lib/router/route.js:131:13)
    at Route.dispatch (/home/vinove/Desktop/AshutoshJha/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/home/vinove/Desktop/AshutoshJha/node_modules/express/lib/router/layer.js:95:5)
    at /home/vinove/Desktop/AshutoshJha/node_modules/express/lib/router/index.js:277:22
    at Function.process_params (/home/vinove/Desktop/AshutoshJha/node_modules/express/lib/router/index.js:330:12)
    at next (/home/vinove/Desktop/AshutoshJha/node_modules/express/lib/router/index.js:271:10)
    at Function.handle (/home/vinove/Desktop/AshutoshJha/node_modules/express/lib/router/index.js:176:3)

这是一个对象:

var errorMessage = {};

一个对象是一组 key/value 对:

{
  "name": "john",
  "age" : 21
}

如果您希望能够将随机数据添加到您的变量中,您需要一个数组:

var errorMessage = [];

那么你的代码就可以工作了

推送方法可用于数组数据类型。 在您的代码中,您正在定义 json
var errorMessage={}。 在内部是 json。 这就是为什么它显示错误 Object # has no method 'push'

so too摆脱这个错误只是改变

var errorMessage = {};

var errorMessage = [];