NodeJS开发入门

发布于 2017-05-12  46 次阅读


nodejs.png

好久不写技术笔记了,最近一直纠结着想开发一个自己的博客系统该使用什么语言。。想过使用PHP、JSP搞,但是觉得真心累,因为我从不使用各种框架,如果纯手工编写,光是一个数据库连接与异常处理模块就够我折腾好几天了~~所以,想了半天,准备先入门从未深入接触过的NodeJS网页后端开发语言!

NodeJS是一个JavaScript运行环境(runtime),俗称运行在服务端的JavaScript。实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。NodeJS是一个基于Chrome JavaScript运行时建立的平台,用于方便地搭建响应速度快、易于扩展的网络应用。NodeJS使用事件驱动,非阻塞I/O模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。

NodeJS有以下几点明显优势:

  1. RESTful API
  2. 单线程
  3. NodeJS可以在不新增额外线程的情况下,依然可以对任务进行并发处理 —— NodeJS是单线程的。它通过事件轮询(event loop)来实现并发操作,对此,我们应该要充分利用这一点 —— 尽可能的避免阻塞操作,取而代之,多使用非阻塞操作。
  4. 非阻塞IO
  5. V8虚拟机
  6. 事件驱动

NodeJS最新安装包:

这里我使用最新的NodeJS V6版本,紧跟官方最新稳定版本!此处只提供win-x64版本,其他版本请自行前往官网下载。

node-v6.10.3-x64.msi.zip

NodeJS开发框架:

Express -- 本人使用的就是此框架

Sail.JS

KOA

Meteor

Derby.JS

NodeJS框架以及一些常用库的安装:

npm install express --save
npm install body-parser --save
npm install multer --save
npm install morgan --save

第一个基于Express框架的小程序实例:

使用记事本或sublime(推荐,点此下载)编辑 myexpress_demo.js 文件,代码如下所示:

var express = require('express');
var app = express();
var logger = require('morgan');

app.use(logger('dev'));//本地控制台日志显示服务(可选)
app.use(express.static('public'));//设置其他静态文件所在目录(可选)

app.get('/', function (request, response) {//默认首页应答页输出内容
	response.send('this is my nodejs first webapp baseed on express framework...');
});

app.get('/notfound',function (request, response) {//404页面内容
	response.send('404 Not Found');
});

app.get('/*',function (request, response) {//404错误处理
	response.redirect("/notfound?requestUrl="+request.url);
});

var server = app.listen(3000, function () {
	var host = server.address().address;
	var port = server.address().port;
  
	console.log("NodeJS应用已经开始运行,访问地址为 http://%s:%s", host, port);
});

保存后在项目所在目录执行:node myexpress_demo.js 执行实例,在浏览器中访问 http://127.0.0.1:3000,即可显示运行结果。


To be or not to be, that is a question.