Web 应用程序:Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。
API:使用您所选择的各种 HTTP 实用工具和中间件,快速方便地创建强大的 API。
Express 提供精简的基本 Web 应用程序功能,而不会隐藏您了解和青睐的 Node.js 功能。
许多 流行的开发框架 都基于 Express 构建。
参考链接:https://how2j.cn/k/nodejs/nodejs-express-start/1766.html#nowhere
node.js 介绍
什么是 Node.js,众所周知 javascript 是在浏览器上运行的脚本语言,主要用来控制 html 元素,即 html dom 对象,是纯粹的 客户端语言。
那么要和服务端交互,就需要等待服务端的开发人员,而服务端开发又以 java 居多,对于不了解 java 语言的前端开发人员,有的时候就不得不干等着服务端准备好,很多时候,青春就在这样的尬等中消逝了。
那么于是就有人想,如果服务端也是用 javascript 开写的话,那么前端人员不是很容易也可以开发服务端的东西了吗? 于是就有大佬开发了一个 v8 引擎,它在服务端运行 javascript 语言,在这个基础上再进行了一定的发展,就出现了可以在服务端运行的 javascript, 它就叫做 node.js 了。
可以把 node.js 简单的看成 javascript 写的 tomcat ...
node.js 的优势
既然已经有了tomcat这样的基于 java 的服务器,为什么还要有 node.js 呢?
1. node.js 上的应用可以使用 javascript 开发,这样方便前端人员
2. node.js 的 I/O 操作是非阻塞式的,比起 tomcat 这种 阻塞式 的更有优势
node.js 的服务端
node.js 的官方下载地址是:
https://nodejs.org/en/download/,下载安装nodejs,直接用的64位zip版不用再安装可以直接使用。
'node' 不是内部或外部命令,也不是可运行的程序或批处理文件
状况:
安装完nodejs之后,命令行输入node -v, 提示 'node' 不是内部或外部命令,也不是可运行的程序或批处理文件
原因:
检查环境变量没有配置正确
配置环境变量:
windows系统里, 需要把nodejs安装目录路径设置进系统变量或用户变量
1. 打开控制面板 - >系统和安全 - >系统 - >高级系统设置 - >环境变量
用户变量中设置 NODE_PATH:C:\Program Files\nodejs\
系统变量中在path中加入:C:\Program Files\nodejs\
先运行 cmd ,然后在控制台中输入 node -v 或者 node --version 查看是否显示版本号 |
创建node项目以及源文件目录 D:\nodejs\src |
接着编写服务器代码,在src下新建文件 server.js |
var http = require('http');
function service(request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello Node.js');
}
var server = http.createServer(service);
server.listen(8088);
测试
http://127.0.0.1:8088/ |
如何通过 node.js 获取参数 直接下载文件 |
var http = require('http');
var url=require('url'); //引入url 模块,帮助解析
var querystring=require('querystring');// 引入 querystring 库,也是帮助解析用的
function service(req,response){
//获取返回的url对象的query属性值
var arg = url.parse(req.url).query;
//将arg参数字符串反序列化为一个对象
var params = querystring.parse(arg);
//请求的方式
console.log("method - " + req.method);
//请求的url
console.log("url - " + req.url);
//获取参数id
console.log("id- " + params.id);
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello Node.js');
}
var server = http.createServer(service);
server.listen(8088);
测试:
http://127.0.0.1:8088/?id=123 |
模仿和排错 |
在确保可运行项目能够正确无误地运行之后,再严格照着教程的步骤,对代码模仿一遍。 |
推荐使用diffmerge软件,进行文件夹比较。把你自己做的项目文件夹,和我的可运行项目文件夹进行比较。 |
关于 favion.ico |
在日志里,会出现 /favicon.ico 信息,这个 favion 是 favorite icon 的缩写,即网站图标 |
模块系统概念 |
在node.js中,所谓的模块,就是别人写的 js |
var http = require('http'); |
就是引用别人写的 http.js 文件。 |
how2j.js
function service(request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello Node.js');
}
function sayHello(){
console.log('hello from how2j.js');
}
exports.hi = sayHello;
exports.service = service;
server.js
var http = require('http');
var how2j = require('./how2j');
how2j.hi();
var server = http.createServer(how2j.service);
server.listen(8088);