node js-NodeJS里遇到一个神奇的问题!!!

问题描述

NodeJS里遇到一个神奇的问题!!!

Manager.getInfo_i(recordsets[i].radioid, recordsets[i].hdid, function (jsonObj) {
if (jsonObj.error_msg != undefined) {
req.errorMsg = jsonObj.error_msg;
res.render('page-error', req);
return;
}
myJson = jsonObj;

logger.info(myJson.spData); //此处输出正常
});
logger.info("out of: hdId " + myJson.hdId);//此处输出报错 undefined
}

    初学nodeJS并不是很清楚,为什么会出现这样的错误。

解决方案

Manager.getInfo_i你这个是异步的吧。。logger.info("out of: hdId " + myJson.hdId);执行了myJson还没赋值呢。。和ajax一样要放到回调里面,或者设置为同步获取数据,自己找下是否有配置同步请求的项

解决方案二:

漏了一句, 在最开始 有 var myJson = {};

解决方案三:

->果然是小白,连异步都还没仔细看 刚刚了解到是异步调用的问题。。。 试着改改看 showbo

时间: 2024-08-29 08:15:49

node js-NodeJS里遇到一个神奇的问题!!!的相关文章

【Node.js】4.从一个例子切入Node js的规范

在开始之前,需要明确的一点就是, ①Node应用是由模块组成的,每一个文件都是一个模块,有自己的作用域. ②在这个文件里定义的变量,函数,类都是私有的,对其他的文件不可见. ③在一个文件中,也就是在一个模块内,module代表本模块,是一个对象 ④如果想给别的模块用本模块的东西,可以将本模块的部分通过设定为[module.exports.变量/函数/类],别的模块通过require加载到本模块,就可以使用本模块提供出来的部分 ⑤当然,你也可以将本模块的分享部分设定为[exports.变量/函数/

Nodejs实现的一个静态服务器实例_node.js

参考cnodejs.org上面的静态服务器例子,写了下面的一个nodejs静态服务器例子,里面包含cache,压缩,贴代码如下: 复制代码 代码如下: /**  * 静态文件服务器测试例子  * User: xuwm  * Date: 13-5-17  * Time: 上午8:38  * To change this template use File | Settings | File Templates.  */ var port=3333; var http = require("http

《Node.js入门经典》一1.3 安装并创建第一个Node.js程序

1.3 安装并创建第一个Node.js程序 Node.js入门经典 说得够多的了!现在来看看运行中的Node.js并编写你的第一个Node.js程序.首先得安装 Node.js.用于Windows 和 OSX 的安装程序可以在 Node.js 的主页下载:http://nodejs.org/.要想在这些平台上安装Node.js,只需下载相关文件并双击安装程序即可.如果使用Linux或者想手动编译Node.js,请在https://github.com/joyent/node/wiki/insta

基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践_node.js

淘宝网线上应用的传统软件栈结构为 Nginx + Velocity + Java,即: 在这个体系中,Nginx 将请求转发给 Java 应用,后者处理完事务,再将数据用 Velocity 模板渲染成最终的页面. 引入 Node.js 之后,我们势必要面临以下几个问题: 技术栈的拓扑结构该如何设计,部署方式该如何选择,才算是科学合理?项目完成后,该如何切分流量,对运维来说才算是方便快捷?遇到线上的问题,如何最快地解除险情,避免更大的损失?如何确保应用的健康情况,在负载均衡调度的层面加以管理?承系

Node.js之异常处理

   记得刚刚开始学Node.js时自己尝试着写了一个简单的http服务器,跟以前接触过的php相比感觉更自由,编起码来也更爽了.但是某天发现稍微一个很小的错误就导致整个http进程挂掉了,顿时有种不靠谱的感觉啊,跟php比起来感觉Node.js容错能力确实弱了很多,起码一个php文件出错也不会导致所有的服务都挂掉.           后来接触到Node.js web开发框架后感觉也不是那么轻易就让整个进程都挂掉的,于是便想研究下Node.js究竟是如何来处理各种异常从而避免整个进程挂掉的.

基于Node.js的强大爬虫 能直接发布抓取的文章哦_node.js

一.环境配置 1)搞一台服务器,什么linux都行,我用的是CentOS 6.5: 2)装个mysql数据库,5.5或5.6均可,图省事可以直接用lnmp或lamp来装,回头还能直接在浏览器看日志: 3)先安个node.js环境,我用的是0.12.7,更靠后的版本没试过: 4)执行npm -g install forever,安装forever好让爬虫在后台跑: 5)把所有代码整到本地(整=git clone): 6)在项目目录下执行npm install安装依赖库: 7)在项目目录下创建jso

深入浅析Node.js 事件循环_node.js

Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高. (来源于Javascript是单线程又是异步的,但是这种语言有个共同的特点:它们是 event-driven 的.驱动它们的 event 来自一个异构的平台.) Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发. Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现. Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件

Nodejs实现的一个静态服务器例子

参考cnodejs.org上面的静态服务器例子,写了下面的一个nodejs静态服务器例子,里面包含cache,压缩,贴代码如下 /** * 静态文件服务器测试例子 * User: xuwm * Date: 13-5-17 * Time: 上午8:38 * To change this template use File | Settings | File Templates. */ var port=3333; var http = require("http"); var url =

柏林纪行(中):Node.js Collaboration Summit

本文首发于 alinode 团队博客 https://alinode.aliyun.com/blog/44 传送门: 柏林纪行(上):整体感受 柏林纪行(中):Node.js Collaboration Summit 柏林纪行(下):JSConf EU Node.js Collaboration Summit 比较沉重的思考写完,下面是比较轻松的部分了--按照时间顺序,先记录一下 Node.js Collaboration Summit 的见闻. Node.js Collaboration Su