前言
我们都知道javascript现在非常火,javascript之前只能在客户端使用,现在nodejs让javascript可运行在服务器端。也就是说,利用javascript编写原来后台人员做的事。是一个跨时代的转变。
了解下nodejs的概念。虽然nodejs有js后缀,却不是js插件,而是JavaScript的运行环境,意外吧!更厉害的是,nodejs运行环境让javascript不仅仅只是做交互和异步请求,还有后台语言实现的操作,如文件读写。暂时先了解这些,可后面学习过程中,再深入。
为什么学习Nodejs?
两点:很火、很强(基于它能完成很多项目,这里有点废话了~)。
安装nodejs(Windows系统)
值得注意是:nodejs的版本一定要与API文档同步。因为不同的版本,接口不一定相同;甚至相同的接口,使用规范也有差别。安装简单、快速。
1、下载
官网下载安装包,下载后点击安装,一路下一步即可。
2、查看是否安装成功
nodejs自带NPM包工具,一般通过命令行工具查看版本号的方式。输入“node -v”能查看到node版本号。输入npm -v能查看npm版本号。说明安装成功。
官网下载:http://nodejs.cn/download/ 版本:10.8.0
官网文档:http://nodejs.cn/api/ 版本:10.8.0
扫描二维码关注公众号,回复: 2877389 查看本文章
NodeJs起一个web服务器
趁热打铁,使用nodejs开发一个web应用。非常简单,甚至都不用配置一堆文件来启动WEB服务器。偷一个懒,去官网API将实例代码拷贝下来,网址:http://nodejs.cn/api/synopsis.html
现在来讲解如何“使用 Node.js 编写的 web服务器,响应返回 'Hello World'”:
其实上面的网址讲的非常详细了,而且也很简单,本想不描述了,但为了方便查看,还是写写。自行操作一遍后,来看下下面代码的解释,这里需要花十多分钟,要认真看完并理解。
1、新建一个名为 hello-world.js 的源代码文件。
2、在任何文本编辑器中打开 hello-world.js,并将以下内容粘贴进去。
//加载http模块,由javascript编写。用于创建WEB服务器和处理HTTP相关的任务
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
//创建服务器
const server = http.createServer((req, res) => {
//监听请求后执行函数,传入两个参数:请求体和响应体
//req获取请求的相应信息:来源地址、get/post
//res给服务器相应内容,如果没有的话,请求的内容一直处于挂起的状态
res.statusCode = 200;//返回头状态码200,即成功
res.setHeader('Content-Type', 'text/plain');//返回的内容是纯文本
res.end('Hello NodeJS!\n');//返回终端信息
});
//监听地址+端口的请求
server.listen(port, hostname, () => {
console.log(`服务器运行在 http://${hostname}:${port}/`);
});
3、保存文件,在hello-world.js文件所在位置打开命令行工具,输入:(新版不再需要$)
$ node hello-world.js
4、终端中会输出以下内容,表明Node.js 服务器正在运行:
服务器运行在 http://127.0.0.1:3000/
5、打开浏览器并访问 http://127.0.0.1:3000。
6、如果浏览器显示 Hello, world!,则表明服务器正在工作。
值得注意的是,如果改变了终端返回的内容,再刷新页面是没有变化的,需要对服务进行重启,如何重启呢?很简单,往下看:
- 在命令行中输入:Ctrl+C 关闭服务(英文输入法下)
- node hello-world.js 重启服务
- 浏览器刷新页面即可
NodeJS在命令行中体验
前面有提过,nodeJS是javascript的执行环境。只不过它封装了很多web底层的处理,赋予了更多的能力。最后来看下,javascript在nodejs命令行中如何执行:
体验一、命令行也能执行javascript代码
我们都知道,浏览器的console窗口,可以输入JS代码并执行。而node环境下,命令行也能执行。具体来看,很简单:
- 打开命令行工具,输入node进入环境
- 输入下面代码
- 正确打印结果3
var a=1;
var b=2;
function c(a,b){return a+b;}
console.log(c(a,b));
体验二、console窗口与node环境的全局环境不同
console窗口:可以查看window、document下挂载的内容,node环境则不能
node环境:有自己的特殊的全局变量,如process浏览器是拿不到的
至此,NodeJs已经入门了,后续可学习更多知识。