Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在NodeJS中定义对象_Javascript_Node.js_Express - Fatal编程技术网

Javascript 如何在NodeJS中定义对象

Javascript 如何在NodeJS中定义对象,javascript,node.js,express,Javascript,Node.js,Express,我试图给对象赋值,但当我试图显示时,它总是返回[]。 这是我的一段代码 const exspress = require("express"); const aplication = exspress(); //body parser for informaton monggo const bodyparser = require("body-parser"); //configuration for node aplication aplication.use( bodyparser.ur

我试图给对象赋值,但当我试图显示时,它总是返回
[]
。 这是我的一段代码

const exspress = require("express");
const aplication = exspress();
//body parser for informaton monggo
const bodyparser = require("body-parser");
//configuration for node aplication
aplication.use(
  bodyparser.urlencoded({
    extended: false
  })
);
const mongose = require("mongoose");

const router = exspress.Router();

const PingModel = mongose.model("Ping");

const ping = require("ping");
var tcpp = require("tcp-ping");     
var obj = Array();
        var a = 0;
        var b = pingtime;
        for(a; a<b; a++){
        ping.promise.probe(host).then(function(data) {
            const storePing = new PingModel();
            storePing.hostPing = host;
            storePing.hostIp = data.numeric_host;
            if (data.alive) {
              storePing.hostStatus = "Ok";
            } else {
              storePing.hostStatus = "Not_ok";
            }
            if (data.alive) {
              storePing.hostLatency = "true";
            } else {
              storePing.hostLatency = "false";
            }
            storePing.save();
            window.obj = storePing
            // return this.obj[a] = storePing;
          });
          console.log(obj);
        }
 module.exports = router;
const exspress=require(“express”);
const-application=exspress();
//informatonmonggo的主体解析器
const bodyparser=require(“body parser”);
//节点应用的配置
应用(
bodyparser.urlencoded({
扩展:false
})
);
const mongose=require(“mongose”);
const router=exspress.router();
常量PingModel=mongose.model(“Ping”);
常量ping=要求(“ping”);
var tcpp=需要(“tcp ping”);
var obj=数组();
var a=0;
var b=时间;

对于(a;a请尝试将
window.obj
更改为
obj
,因为您的
obj
只是一个变量,它不在
window
对象上

另外,在声明对象时,您已经将其声明为数组。如果您想要一个对象,您可以使用
var obj={};
,尽管您仍然使用
存储重新分配它

此外,您需要将
控制台.log
移动到承诺的
回调中,然后
回调,因为这是您拥有的异步代码-此时,您的
控制台.log
将在承诺的
回调执行之前触发,因此
obj
将不具有您期望的值

一长串的东西-

const router = exspress.Router();

const PingModel = mongose.model("Ping");

const ping = require("ping");
var tcpp = require("tcp-ping");     
var obj = {}; // NOTE, object instead of array, though this gets reassigned anyway, so doesn't really matter
        var a = 0;
        var b = pingtime;
        for(a; a<b; a++){
        ping.promise.probe(host).then(function(data) {
            const storePing = new PingModel();
            storePing.hostPing = host;
            storePing.hostIp = data.numeric_host;
            if (data.alive) {
              storePing.hostStatus = "Ok";
            } else {
              storePing.hostStatus = "Not_ok";
            }
            if (data.alive) {
              storePing.hostLatency = "true";
            } else {
              storePing.hostLatency = "false";
            }
            storePing.save();
            obj = storePing // <-- NOTE, no window object

            console.log(obj); // <-- NOTE, logging inside the then callback
            // return this.obj[a] = storePing;
          });
        }
 module.exports = router;
const router=exspress.router();
常量PingModel=mongose.model(“Ping”);
常量ping=要求(“ping”);
var tcpp=需要(“tcp ping”);
var obj={};//注意,对象而不是数组,尽管这会被重新分配,所以并不重要
var a=0;
var b=时间;

对于(a;a请尝试将
window.obj
更改为
obj
,因为您的
obj
只是一个变量,它不在
window
对象上

另外,在声明对象时,您已经将其声明为数组。如果您想要一个对象,您可以使用
var obj={};
,尽管您仍然使用
存储重新分配它

此外,您需要将
控制台.log
移动到承诺的
回调中,然后
回调,因为这是您拥有的异步代码-此时,您的
控制台.log
将在承诺的
回调执行之前触发,因此
obj
将不具有您期望的值

一长串的东西-

const router = exspress.Router();

const PingModel = mongose.model("Ping");

const ping = require("ping");
var tcpp = require("tcp-ping");     
var obj = {}; // NOTE, object instead of array, though this gets reassigned anyway, so doesn't really matter
        var a = 0;
        var b = pingtime;
        for(a; a<b; a++){
        ping.promise.probe(host).then(function(data) {
            const storePing = new PingModel();
            storePing.hostPing = host;
            storePing.hostIp = data.numeric_host;
            if (data.alive) {
              storePing.hostStatus = "Ok";
            } else {
              storePing.hostStatus = "Not_ok";
            }
            if (data.alive) {
              storePing.hostLatency = "true";
            } else {
              storePing.hostLatency = "false";
            }
            storePing.save();
            obj = storePing // <-- NOTE, no window object

            console.log(obj); // <-- NOTE, logging inside the then callback
            // return this.obj[a] = storePing;
          });
        }
 module.exports = router;
const router=exspress.router();
常量PingModel=mongose.model(“Ping”);
常量ping=要求(“ping”);
var tcpp=需要(“tcp ping”);
var obj={};//注意,对象而不是数组,尽管这会被重新分配,所以并不重要
var a=0;
var b=时间;

对于(a;abtw)我想控制台.log(obj)我定义了var 0bj=Array();
window.obj=storeing
什么是
window
?试图定义为全局对象,但它不起作用。我想控制台.log(obj)我定义了var 0bj=Array();
window.obj=storeing
什么是
window
?试图定义为全局对象,但它没有返回“{}”哥们,我不知道为什么?或者是因为我正在尝试分配内部for循环和内部ping.promise.probe函数?我想你需要等待一些东西。你能用你最新的代码更新你的问题吗?或者如何存储。然后返回一个变量/对象?它的返回“{}”哥们,我不知道为什么?或者是因为我正在尝试分配内部for循环和内部ping.promise.probe函数?我想你需要等待一些东西。你能用你最新的代码更新你的问题吗?或者如何存储。然后返回到变量/对象吗?