文档章节

nodejs介绍

谢思华
 谢思华
发布于 2015/12/07 17:41
字数 1260
阅读 306
收藏 1

一.官网

      nodejs中文教程:http://www.runoob.com/nodejs/nodejs-tutorial.html 

      nodejs中文api:http://nodeapi.ucdok.com/api/ 

      七天学会nodejs:http://nqdeng.github.io/7-days-nodejs/ 

       sequelize语法:http://docs.sequelizejs.com/en/latest/ 

二.Nodejs基础

     1)什么是nodejs

     2)nodejs安装

       下载安装:https://nodejs.org/en/download/ 

      根据需要下载对应的安装包,进行安装;

           a、设置系统环境变量

                  将node.exe所在目录加入系统环境变量PATH中,便于在任意位置执行node应用

             b、NPM 打包管理器

                  新版nodejs已经默认安装了npm,不需另外安装。

             c、测试安装环境

                 windows下面按window+R, 输入cmd,调用命令窗口。

                 输入> node -v

                 输入> npm -v

hello.js所在目录以及内容:


nodejs安装成功!

  

     3)nodeclipse插件在线安装

       nodeclipe是一个插件,在Eclipse中安装此插件,可方便nodejs项目代码查看。此插件为非必须安装的插件,只是安装了,方便。如果没安装,也可以用sublime_text.exe进行js代码进行查看,也是挺方便的。

       nodeclipe插件在线安装流程:

【打开Eclipse--Help--Install New Software】

【在Add按钮,输入自定义名称为 nodeclipe,获取路径为:http://www.nodeclipse.org/updates ,然后选择截图中1st Nodeclipe Core,然后下一步,直接按指引到finish】

【以下截图中的报错信息,不一定都会有。其只是我安装插件过程中多次遇到,插件安装到一半就报这个错误了,一开始以为是Eclipse版本问题,后来多次安装后,发现应该是跟网速有关吧。经过多次安装,最后成功了!】

【本Eclipse版本为v4.3.0】

【安装成功后,可以直接进入nodejs项目根目录,然后使用命令 npm start进行执行,以下为执行成功:】

【nodejs项目默认配置3000端口,访问后,为这样则为搞定了】


     4)导入nodejs项目或者新建nodejs项目

       为了方便nodejs项目代码查看,可以先把Node窗口打开,方便切换【window--open perspective--other--node】

        操作完上一步,则会发现以下截图有个Node的窗口

        在Node窗口下,右键项目空白处,新建Node.js项目【New--Node.js Project--输入项目名称--指定项目路径;此处需要注意:如果所指定的项目路径的该项目已存在,则相当于导入项目操作,如果不存在,则会新建一个空的项目】

       完成!【如何运行项目,此处不重复,可查看上一个小标题指引】


     5)安装google v8运行调试插件(跟tomcat类似)【非必须】

       可参考:http://jingyan.baidu.com/article/3aed632e0c88fd70108091b2.html 

     6)控制台执行时,可用命令把日志输出到指定文件

       命令如下:    

nohup npm start > result.log

     7)linux服务器用shell脚本启动nodejs项目方法

 博客地址(私人):    http://my.oschina.net/xsh1208/blog/599862 

三.Sequelize语法

       1)联表查询

      Sequelize官网api中提供了单表查询的类似findAll,findOne等方法,写sql很方便,但是,有时候业务比较麻烦,需要联表查询的时候,用框架的单表方法,会比较繁琐。可直接用Query,直接写sql,然后执行sql内容。     

var sql = "select q.question_id as questionId,a.answer_id as answerId from kw_question q,kw_answer a where q.question_id = a.question_id";
conn.query(sql, function(err, data) {
    if (null != data && data.length > 0) {
        console.log("====data[0].title=" + data[0].title);
    }
});

........未完待续


四.nodejs常用插件

       1)日期时间插件Date-Utils

nodejs日期时间插件Date-Utils:http://segmentfault.com/a/1190000003777624 

【常用日期转换如下】

require('date-utils');
var dt = new Date();
console.log(dt.toFormat("YYYY-MM-DD HH24:MI:SS"));


       2)编辑器Sublime Text

sublime text 3 快捷键大全:http://www.jb51.net/softjc/180873.html 


五.nodejs常用案例

       1)json

//json数据
var obj = {  
    "name": "LiLi", 
    "age": 22,  
    "sex": "F"  
}; 

//object转string
var str = JSON.stringify(obj); 
console.log(str); 

//string转object
var obj2 = JSON.parse(str); 
console.log(obj2);

//获取json的key对应的值
for(var key in snsData) {
    console.log(key + ": " + JSON.stringify(snsData[key]));
}

//创建json,单个对象
var student = new Object();
student.id = 1;
student.name = "Helen";
console.log(JSON.stringify(student));

//创建jsonArray
var people = new Array();
people.push(student);  //此处student为上面例子的student对象

       2)js

js相除去掉小数部分

做一个分页功能,之前都是用Java后台实现总页数的:

总页数=(numTotal % 每一页显示的记录数) == 0 ? (numTotal / 每一页显示的记录数) : (numTotal / 每一页显示的记录数 + 1);

在Java里面“/”号所得的就是整数了,但是在js里面不是整数的。。。而是包含小数。

查资料所得:
1.丢弃小数部分,保留整数部分 
js:parseInt(7/2) 
2.向上取整,有小数就整数部分加1 
js: Math.ceil(7/2) 
3,四舍五入. 
js: Math.round(7/2) 
4,向下取整 
js: Math.floor(7/2)
都是JS内置对象


六.常见问题

       1)报错:Unexpected token *

co函数为调用接口的时候用到。此处报错一般需要检查两个地方:

1、nodejs所安装的版本是否太低;

【co是es6的函数,如果nodejs版本过低,是无法支持这种函数的,可以参考以下截图的版本】

2、所访问的接口是否不通;

3、node_modules是否有引入co的包;

© 著作权归作者所有

谢思华
粉丝 77
博文 221
码字总数 152858
作品 0
广州
程序员
私信 提问
Node.js进阶教程第一步(基础篇)-何韬-专题视频课程

Node.js进阶教程第一步(基础篇)—18659人已学习 课程介绍 本课程从Node.js的安装配置开始,包括函数调用,模块调用,路由,文件操作,异常处理,参数接收,正则表达式,连接数据库,事件等内...

pkutao
2016/09/06
0
0
iKcamp新书上市《Koa与Node.js开发实战》

内容摘要 Node.js 10已经进入LTS时代!其应用场景已经从脚手架、辅助前端开发(如SSR、PWA等)扩展到API中间层、代理层及专业的后端开发。Node.js在企业Web开发领域也日渐成熟,无论是在API...

iKcamp
2018/12/27
0
0
Skywalking Node.js 探针 0.1.0 版本正式发布

项目介绍: Skywalking Node.js探针0.1.0版本正式发布了. Skywalking Node.js探针是由Skywalking社区提供专门针对Node.js生态下的后端应用提供的自动探针。 Skywalking Node.js探针遵守Skywa...

Xin_Zhang_BJ
2018/05/21
1K
3
Nodejs + Express 实现多用户博客系统(23 个视频)

Nodejs 实现最常见的登录注册功能,结合管理文章等功能,实现大家所期待的多用户博客系统。 总播放时长:135 分钟 作者:hfpp2012 类别:后端 技术分类:Nodejs Node.js + Express 实现多用户...

rails365
2018/08/15
0
0
10 个最佳的 Node.js 的 MVC 框架

Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的, 易于扩展的网络应用· Node.js 借助事件驱动, 非阻塞 I/O 模型变得轻量和高效, 非常适合 run across...

oschina
2014/02/24
11.8K
33

没有更多内容

加载失败,请刷新页面

加载更多

让《强化学习(第2版)》架起一座通往强化学习经典知识宝库的桥梁

上交大计算科学与工程系俞凯教授,5分钟口述讲解,带你快速认识了解年度重磅图书《强化学习(第二版)》! 在 AlphaGo战胜李世石之后,AlphaZero以其完全凭借自我学习超越人类在各种棋类游戏...

博文视点Bv
18分钟前
6
0
TLA7-EVM开发板的处理器、NOR FLASH、DDR3

TLA7-EVM开发板是一款由广州创龙基于Xilinx Artix-7系列FPGA自主研发的核心板+底板方式的开发板,可快速评估FPGA性能。核心板尺寸仅70mm*50mm,底板采用沉金无铅工艺的6层板设计,专业的PCB...

Tronlong创龙
27分钟前
4
0
UUID的变种-有序

为了解决UUID无序的问题,NHibernate在其主键生成方式中提供了Comb算法(combined guid/timestamp)。保留GUID的10个字节,用另6个字节表示GUID生成的时间(DateTime)。 /// <summary> //...

Canaan_
28分钟前
4
0
Netty学习(6)——通道间数据传输

1. FileChannel实现通道间的数据传输 在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel传输到另外一个channel。 transferFrom() FileChannel的transferF...

江左煤郎
31分钟前
3
0
AngularDOM操作

gtandsn
32分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部