当前文件所在的文件夹路径
cnosole.log(__dirname)
当前文件的路径
console.log(__filename)
node.JS模块化
- node遵循模块化的开发
导出:exports 直接导出这个对象
module.exports 直接导出后面等于号的内容
exports和module.exports 都是导出模块
本质上就是一个对象,使用的方法:公司里面是有严格规定的
导入:require() 当前的文件中一定要加上“./”表示当前
如果不加其他的导出,默认的是去找module.exports中的内容
-在node中没有全局作用域,有的只是模块作用域
express 快速 基于nodejs的后台框架
引入
var express = require("express");
var app = express();
传输
http中url的地址是不区分大小写的,但是,原生node做不到,express就很简便解决了
所有的请求,get、post请求都是封装的方法,直接调用即可
正则
app.get(/^\/student\/([\d]{10})$/, (req, res) => {
console.log(req.params[0])
res.send(`学生信息,学号${req.params[0]}`)
})
变量
app.get("/teacher/:gh", (req, res) => {
res.send(`老师的工号${req.params.gh}`)
})
http的请求有多少种? 8中,常用的就只有get,post
get
post
用同一个地址。get去读取某个页面,post作为请求,RESTful路由设计
通过一个接口,http请求方式的不同,效果也不同
/
get 读取的操作
add 增加
post 修改
delete 删除
ejs 在express中,更推荐去使用模板引擎
const express = require("express");
const app = express();
// express里面是自动集成了ejs
// 设置模板引擎
app.set("view engine", "ejs");
//用get读页面
app.get("/", (req, res) => {
res.render("form")
})
//用post去完成提交
app.post("/", (req, res) => {
res.send("OK")
})
以下两个请求会造成请求冲突,因此需要解决问题
app.get("/:username/:id", (req, res) => {
console.log('1')
res.send(req.params.username)
})
app.get("/admin/login", (req, res) => {
console.log('2');
res.send("管理员登录")
})
解决方式1
交换两个请求的位置
app.get("/admin/login", (req, res) => {
console.log('2');
res.send("管理员登录")
})
app.get("/:username/:id", (req, res) => {
console.log('1')
res.send(req.params.username)
})
next,继续往下执行
app.get("/:username/:id", (req, res, next) => {
console.log('1')
next()
})
app.get("/admin/login", (req, res) => {
console.log('2');
res.send("管理员登录")
})
cookie
const express = require("express");
const cookieParser = require("cookie-parser");
const app = express();
app.use(cookieParser()); //引入cookie中间件
app.get("/", function(req, res) {
// console.log('Cookies: ', req.cookies)
// 在响应中设置,返回给浏览器,然后存起来,下一次访问的时候,请求肯定就带上了cookie
// res.cookie(key,value,{cookie存储的描述对象})
res.cookie("huanglaoshi", "huazhuang", { maxAge: 900000, httpOnly: true });
res.send(req.cookies);
})
app.listen(3000);
session