大坑之node.js

本文详细介绍了如何使用Node.js构建服务器,并实现热更新功能。同时,深入讲解了MongoDB在Windows和Mac系统上的安装步骤及配置方法,以及如何在项目中引入和使用MongoDB。此外,还涵盖了Express框架的安装与使用,包括EJS模板引擎的标签用法,以及session管理和异步流程控制的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

程序设计之道无远弗届,御晨风而返。———— 杰佛瑞 · 詹姆士

如何构建一个node服务器 ☞

热更新:
安装  npm install supervisor -g
启动: supervisor xxxx.js 在项目中也可以在配置中添加"dev": “supervisor ./bin/www” 通过npm run dev来启动。


mongodb:
1.选择Custom
2.选择安装路径,必须在盘服文件夹下 (/D:/mongoDB)
3.在当前盘服下面创建 data里面创建db。里面有个bin的文件,先打开mongod.exe在打开mongo.exe不要关。里面有 connecting to: mongodb://127.0.0.1:27017 这时候在浏览器输入127.0.0.1:27017会打印一句话证明安装成功。
Mac 系统上安装
一、安装
在Mac OS上面安装MongoDB,你可以通过编译源代码来安装 ,也可以在Mac OS上使用Homebrew安装。
这里介绍使用Homebrew安装MongoDB。
首先更新Homebrew的package数据库:
$ brew update
$ brew install mongodb
二、启动MongoDB
$ mongod --config /usr/local/etc/mongod.conf
三、使用MongoDB
$ mongo
引入mongodb依赖在项目中:
var mongodb = require(‘mongodb’).MongoClient;
var db_str = ‘mongodb://localhost:27017/Database name’;
var ObjectId = require(‘mongodb’).ObjectId;
let id = ObjectId(req.body._id);
ObjectId是mongodb中特有格式的存储id格式需要安装自带方法解决。


express
安装:
全局:npm install express -g
项目中安装:npm install express-generator -g
脚手架: express -e project_name(项目名字)
安装package.json中的依懒,进入目录 npm i

Package.json依赖解释
body-parser 对http请求体进行解析
cookie-parser 对cookie进行解析的
debug 输出debug信息
ejs javascript模板引擎
morgan 在控制台上显示request url 信息
serve-favicon: 解决默认请求favicon.ico问题

EJS常用标签:
<% %>流程控制标签
<%= %>输出内容标签(原文输出HTML标签)
<%- %>输出标签(HTML会被浏览器解析)
<%# %>注释标签
% 对标记进行转义
<%- include(path) %> 引入 path 代表你引入其他模板的路径
Eg:<%- include(‘head.ejs’) %>


session:
客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。
npm install express-session -g
npm install express-session -D
app.use(session({
secret: ‘recommend 128 bytes random string’,
cookie: { maxAge: 20 * 60 * 1000 },
resave: true,
saveUnintialized: true
}))


Async -异步流程控制 :
安装:
1、npm init 2、npm i async -D
串行无关联 async. series()
1、做两个串行的异步请求,无关联,无论什么时候返回,都能拿到结果
2、总的事件执行时间和为几个事件执行时间之和
3、series串行方法=>第一个参数传入数组/对象,数组/对象内传入n个异步方法,第二个参数对一系列方法的结果处理

并行无关联 async. parallel ()
两个并行(两个同时执行)的操作,没关联--时间为某个事件执行的最长时间

串行有关联 async.waterfall()


以上内容如有错误欢迎指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值