20210816 express初学基础知识

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软件,进行文件夹比较。把你自己做的项目文件夹,和我的可运行项目文件夹进行比较。
这个软件很牛逼的,可以知道文件夹里哪两个文件不对,并且很明显地标记出来
这里提供了绿色安装和使用教程:diffmerge 下载和使用教程

关于 favion.ico

在日志里,会出现 /favicon.ico 信息,这个 favion 是 favorite icon 的缩写,即网站图标
用node.js 就会有这么一个默认的访问。。。 和业务没有实际关系,忽略掉好了。。。

模块系统概念

在node.js中,所谓的模块,就是别人写的 js
比如在前面教程中的 server.js 里引入 http模块

var http = require('http');

就是引用别人写的 http.js 文件。
本知识点会自己写一个 模块,然后用 server.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);

测试:http://127.0.0.1:8088/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值