nodejs介绍

一.官网

      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/ 

nodejs介绍_第1张图片

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

         a、设置系统环境变量

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

             b、NPM 打包管理器

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

             c、测试安装环境

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

                 输入> node -v

                 输入> npm -v

nodejs介绍_第2张图片

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

nodejs介绍_第3张图片

nodejs安装成功!

     3)nodeclipse插件在线安装

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

       nodeclipe插件在线安装流程:

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

nodejs介绍_第4张图片

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

nodejs介绍_第5张图片

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

nodejs介绍_第6张图片

【本Eclipse版本为v4.3.0】

nodejs介绍_第7张图片

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

nodejs介绍_第8张图片

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

nodejs介绍_第9张图片

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

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

nodejs介绍_第10张图片

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

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

nodejs介绍_第11张图片

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

     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 *

nodejs介绍_第12张图片

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

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

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

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

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

你可能感兴趣的:(nodejs,安装,配置,运行,IT,java)