什么是NodeJS
JS是脚本语言,脚本语言都需要一个解析器才能运行。对于写在HTML页面里的JS,浏览器充当了解析器的角色。而对于需要独立运行的JS,NodeJS就是一个解析器。
每一种解析器都是一个运行环境,不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情。例如运行在浏览器中的JS的用途是操作DOM,浏览器就提供了document之类的内置对象。而运行在NodeJS中的JS的用途是操作磁盘文件或搭建HTTP服务器,NodeJS就相应提供了fs、http、websocket、rest、mysql等内置对象。
安装NodeJS
从官网下载安装包https://nodejs.org/ 安装包是msi可以直接安装。
在Windows上安装时务必选择全部组件,包括勾选Add to Path。
安装完成后,在Windows环境下,请打开命令提示符,然后输入node -v,如果安装正常,你应该看到v7.6.0这样的输出:
E:\visual-space\template>node -v
v12.16.1
如何运行js代码
在命令行输入node,进入node交互模式
node
> console.log('Hello World!');
Hello World!
如果要运行一大段代码的话,可以先写一个JS文件再运行。
function hello() {
console.log('Hello World!');
}
hello();
在命令行执行
node hello.js
Hello World!
第一个例子,引入 required 模块
require函数用于在当前模块中加载和使用别的模块,传入一个模块名,返回一个模块导出对象。模块名可使用相对路径(以./开头),或者是绝对路径(以/或C:之类的盘符开头)。另外,模块名中的.js扩展名可以省略。以下是一个例子。
var http = require('http');
http.createServer(function (request, response) {
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// 发送响应数据 "Hello World"
response.end('Hello World\n');
}).listen(8888);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');
使用命令行执行
node server.js
从浏览器访问
打开浏览器访问 http://127.0.0.1:8888/,你会看到一个写着 "Hello World"的网页。
npm
npm是什么东东?npm其实是Node.js的包管理工具(package manager)。
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
允许用户从NPM服务器下载别人编写的第三方包到本地使用。
允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 "npm -v" 来测试是否成功安装。
初始化npm
npm init
在工程目录执行初始化命令,会生成package.json文件,里面有本项目的描述和依赖。
{
"name": "template",
"version": "1.0.0",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"description": "",
"dependencies": {
"nunjucks": "2.4.2",
"ws": "1.1.1"
}
}
如需增加依赖,修改package.json添加dependencies即可
然后执行npm install就会把依赖下载下来,保存在工程node_modules目录下