1.相关概念
一.关于require('文件名)
var fs = require('fs'); //加载核心模块
var template = require('art-template'); //加载第三方包模块,所有的第三包都是通过npm下载
var b = require('./b'); // 加载自己的文件模块
二.关于模块查找顺序
1.优先加载自己缓存下来的文件
2.核心模块
3.路径形式的文件模块
4.第三方包模块:node_modules文件中去找, 找不到会跳到上一级目录去找
node_modules, 依次直到找到磁盘根目录,找不到就报错,一个项目有且只有一个
node_modules,都会放到项目的根目录;
三.关于加载文件模块
1. npm init 初始化一个package.json项目描述说明
2. npm init -y能快速生成描述说明
3. 关于pageage-lock.js文件看成包的详细描述. 尽量不删
4.如果node_ modules删除了,是可以通过npm install 这个命令来重新下载所有的包.
5. npm install name -save 简写(npm install name -S) 自动把模块和版本号添加到dependencies。
npm install name -save-dve 简写(npm install name -D) 自动把模块和版本号添加到 devdependencies。
构建工具: gulp和webpack是用来压缩代码,打包等需要的工具,程序实际运行的时候并不需要,就
要放在dev中所以要用. -D;
-S后,安装包会在package中的dependencies对 象中。简称dep。 dep是 在生产环境中要用到的。
项目插件:例如eIement ui、 echarts这 种插件要在运行中使用的,就要放在dep中所以就用-S;
6.npn install nodemon- g这里的-g代表全局安装
四.关于淘宝镜像
1. 从npm的官网上 下载包会导致速度慢,可以使用淘宝镜像
2. 安装淘宝镜像cnpm ==> npm install -g cnpm --registry=https://registry. npm. taobao. org
下载到全局
3. 接下来你再安装包的时候,可以把npm换 成cnpm进行安装就好了
例如: npm install bootstrap 就可以写成: cnpm install bootstrap
5.关于nodemon工具
1. 问题:修改完代码都要手动重启,很麻烦
2. 解决:使用nodemon工具来让你的代码自动重启, 他会自己监听代码,自动保存
3. 安装npm i nodemon -g全局安装 , 任意目录都可以使用
4. 启动服务器: nodemon app.js;
2.node.js中get提交表单
注意一定要设置请求头, 才能获取数据
(<form action="/postEmthod" method="post"></form>)
// 6.安装包
// ①安装: npm install--save art-template express-art-template
// ②配置说明: express -art- template 专门把express和art-template整合到一起
// 配置以后缀名, html结尾的文件时,使用模板引擎
app.engine('html', require('express-art-template'))
app.set('views', './views');
// ③ express为res形参提供了一个方法render(),只有在配置模板引擎之后才能使用
// res. render('htm1后缀名的文件,{数据}), 第二个参数可以省略
// 8. get提交表单
app.get('/postEmthod', function (req, res) {
// 一.获取后面的参数
var comment = req.query;
// 二. 添加数据
comment.time = new Date;
comments.unshift(comment);
// 三. 重定向
res.redirect('/');
console.log(comments);
})
3.node.js中post提交表单
// 10. 使用post提交数据,设置请求体. 需要通过express的第三方包, 叫中间件body-parser
// 一. 安装:npm i body-parser -S
// 二. 导入:通过reqiure()
// 三. 配置: app. use (bodyParser: urlencoded({ extended: false }))
// app.use(bodyParser. json())
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
// 9. 使用post提交数据
app.post('/postEmthod', function (req, res) {
//①设置请求头, 才能获取数据
// console. log (req, query); / / 只能获取到get的请求参数
console.log(req.body);
//②添加数据
var comment = req.body;
comment.time = new Date;
comments.unshift(comment);
// ③ 重定向
res.redirect('/');
})