node 常用模块
像在服务器上的操作,我们只要 require 引入的模块,只要不是 nodejs 中的模块,我们的下载环境都是开发环境
配置自动化:引用插件 nodemon
下载:npm i nodemon -g // 最好全局安装
作用:之前,当我们改服务器的内容的时候,我们需要关闭服务器重新打开后,才能看到我们更改的内容;很不方便
所以,他的作用就是,当我们改服务器的东西,只要 ctrl+s 保存后,服务器的东西自动更改,省的我们关闭服
务器,然后在开启服务器这样子
使用方法:nodemon "文件名" // 之前都是 node "文件名" 来开启服务器,现在使用他即可
模板引擎:引用插件 ejs render 方法的使用 及 引用文件 renderFile 方法的使用
下载:npm i ejs
作用:之前我们用的 underscore 里面的 template 特别爽,模板的写法,现在 nodejs 也为我们提供了跟 underscore
一样的东西,我们可以 <% js代码 %> <%=引入数据 %>
使用方法: render() 第一个参数(必填):模板内容 第二个参数(必填):对象传参
第一种:
let ejs = require("ejs");
let st = "hello";
let dt = "<%=data %>world";
let ft = ejs.render(dt,{data:st})
console.log(ft) // 打印的结果就是 helloworld
第二种:
let ejs = require("ejs");
let st = {data:hello};
let dt="<%=data %>world";
let ft=ejs.render(dt,st);
console.log(ft) // 打印的结果就是 helloworld
以上这两种写法的区别,相信大家也看到了,就是 ejs.render() 中 第二个参数 必须是一个对象,只不过这个对象是什么时候写而已;
renderFile() 的使用方法 将 文件 模板进行传参 有三个参数 第一个:文件 第二个:传参 第三个:回调函数
我们在一个 ejs 文件上写上内容

看到没,与我们的 html 文件类型一致,然后,我们需要进行的操作 就是将 数据传给 data,最终将内容展示出来

res.write() 往响应体里面些东西
中间件:两个同样的功能,谁在前执行谁
路由:对网址的伪装(我的理解)
我们作为一个老实人,就会把具体的文件地址暴露出来,但是这样不好,别人也可以通过文件地址来访问我们的东西,包括秘密的文件,这当
然不是一个好事情,所以我们需要对网址进行处理,让他们不再通过网络地址也能访问我们的内容,这样一来,问题就解决了,老板也会加个鸡腿
案例:

我们在 a.html 的内容是这样的

来吧,让我们看看效果

路由传参
我们在网址上是这样写的:http://127.0.0.1:3000/a/12 (俗称:前端的请求)
但是后台的匹配模式是这样的:"/a/:id" 这样的写法,我们通过 req.params 得到的结果为 id=12
但是:以上的写法:会不会显得 low ,
所以:让我们来使用高大上的东西:express 插件 这样的插件:使我们少写很多东西之外呢,也会让我们写的简单了不少;
下载: npm i express --save
他的功能也是特别强大,我们来看一看吧
第一个创建服务器:
let express = require("express");
let app = express()
app.listen(3000) // 这样我们便配好了一个 localhost:3000 的服务器
第二个:创建根目录
app.use(express.static("./www")); // 这样我们就创建了一个 www 的根目录,且不需要我们在进行文件处理,因为 express 已经帮我们处理好了
第三个:路由:
说路由之前,我们先来说说前台的东西
1. app.get() 代表所有 get 方式发送的请求,都有它来接收
2. app.post() 代表所有 post 方式发送的请求,都有它来接收
3. app.all() 不管是 get 方式,还是 post 方式,都可以接收他的请求
对于请求的解析也是一件特别注意的事情
如 get 方式 获取的参数
这种方式
let url = require("url");
let querystring = require("querystring"); // 将网络地址参数进行解析
let obj = url.parse(req.url) // 这个是解析网络地址的,在上面的路由案例出现过
let query = obj.query; // 这里我们便能得到传参的字符串形式
let cont = querystring.parse(query) // 这里我们就可以将字符串形式转化成对象的形式
get 方式通过 url 传输,只要我们将 url 种的 query 解析成对象,就可以获取参数
说实话,get 是 最简单的 ,post 可能需要处理的东西多一点;
post 解析:需要下载插件 body-parser 且跟网络地址没有关系
下载:npm i body-parser --save
这种方式
let bodyParser = require("body-parser");
let urlencodedParser = bodyParser.urlencoded({ extended: false })
接下来实现路由传参

效果图

node 常用模块的更多相关文章
- node常用模块---path
path---用来提供文件路径和文件之间的处理的函数 node常用模块之path
- node常用模块汇总
node常用模块汇总: 点击插件名字,查看使用文档 npm常用模块汇总 node常用模块汇总 gulp常用插件汇总 mkdirp:在node.js中像mkdir -p一样递归创建目录及其子目录
- node 常用模块及方法fs,url,http,path
http://www.cnblogs.com/mangoxin/p/5664615.html https://www.liaoxuefeng.com/wiki/001434446689867b2715 ...
- npm常用模块汇总
npm常用模块汇总: 点击插件名字,查看使用文档 npm常用模块汇总 node常用模块汇总 gulp常用插件汇总 npx 使用教程:npx使用教程 bable:bable这是JavaScript编译器 ...
- python学习笔记之常用模块(第五天)
参考老师的博客: 金角:http://www.cnblogs.com/alex3714/articles/5161349.html 银角:http://www.cnblogs.com/wupeiqi/ ...
- day--6_python常用模块
常用模块: time和datetime shutil模块 radom string shelve模块 xml处理 configparser处理 hashlib subprocess logging模块 ...
- Python学习笔记-常用模块
1.python模块 如果你退出 Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失.因此,如果你想要编写一些更大的程序,为准备解释器输入使用一个文本编辑器会更好,并以那个文件替代作 ...
- Day5 - Python基础5 常用模块学习
Python 之路 Day5 - 常用模块学习 本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shel ...
- 文成小盆友python-num7 -常用模块补充 ,python 牛逼的面相对象
本篇内容: 常用模块的补充 python面相对象 一.常用模块补充 1.configparser模块 configparser 用于处理特定格式的文件,起内部是调用open()来实现的,他的使用场景是 ...
随机推荐
- O020、理解 Glance
参考https://www.cnblogs.com/CloudMan6/p/5384923.html OpenStack 由 Glance 提供 Image 服务. 理解 Glance ...
- 记一次生产环境presto删表失败的问题
场景,开发用java程序连接presto创建一个表,这个表在hdfs的权限为: 然后用presto去删除这个表 报错,没有权限删除,查看上一级目录权限,发现权限正常 直连hive删表 发现正常. 然后 ...
- 韦东山嵌入式Linux学习笔记01--转载: 板子ping不通PC怎么办
请参考链接:https://blog.csdn.net/u013490896/article/details/71250060 我的环境: window 10 jz2440 v3 我采用的连接方式如下 ...
- wannacry分析--20199319
病毒概况 WannaCry病毒利用前阵子泄漏的方程式工具包中的"永恒之蓝"漏洞工具,进行网络端口扫描攻击,目标机器被成功攻陷后会从攻击机下载WannaCry病毒进行感染,并作为攻击 ...
- oracle监听启动很慢
TNS-12531: TNS:cannot allocate memory 首先查看内存,free -m 发现当前的空闲内存还有很多,那就不是内存不足的问题 想到之前重启过数据库服务器,查看主机名ho ...
- 递归型SPFA判负环 + 最优比例环 || [Usaco2007 Dec]奶牛的旅行 || BZOJ 1690 || Luogu P2868
题外话:最近差不多要退役,复赛打完就退役回去认真读文化课. 题面:P2868 [USACO07DEC]观光奶牛Sightseeing Cows 题解:最优比例环 题目实际是要求一个ans,使得对于图中 ...
- 阿里云--安装nginx AND访问超时
首先先安装PCRE pcre-devel 和Zlib,因为配置nginx的时候会需要这两个东西PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 ...
- tarjan算法比较详细的讲解&&tarjan常见疑难解答&&洛谷P2002 消息扩散题解
因为有大佬写的比我更长更具体,所以我也就写写总结一下了 引入: 众所周知,很多图中有个东西名叫环. 对于这个东西很多算法都很头疼.(suchas 迪杰斯特拉) 更深层:环属于强联通分量(strongl ...
- mongodb aggregate
$project:修改输入文档的结构.可以用来重命名.增加或删除域,也可以用于创建计算结果以及嵌套文档. $match:用于过滤数据,只输出符合条件的文档.$match使用MongoDB的标准查询操作 ...
- 多线程-生产者消费者(synchronized同步)
正解博客:https://blog.csdn.net/u011863767/article/details/59731447 永远在循环(loop)里调用 wait 和 notify,不是在 If 语 ...