Nodejs+Expressjs day01
1.Why node?
最近在学习jsp和servlet,感受到语法以及格式十分的不优雅,于是决定学习node,并由codecademy上的课程以及全栈之巅的视频做参考
(这里提一句codecademy的图片是真的非常好)
从最基本的来说nodejs是写后端的,目前我还未接触到Vue,之后会逐步迭代整合成一个合并项目
nodejs的核心在于module,模块化的概念
模块自己有依赖,模块可被别的模块依赖
每一个小的js文件中引用所需要的模块
2.基本配置:
当前版本node为v13.3.0
当前版本npm为6.13.2
在vscode中新建一个文件夹作为项目根目录
npm i express
项目中会出现node_modules和package-lock.json
我们新建一个app.js文件开始写
node.js中对模块的引用只需要require就可以
const express = require("express");
const app = express();
先把模块引入进来,然后创建一个名为app的express实例
MongoDB basic:
官网上下载的mongodb可能需要配置环境变量,基本就是找配置文件加入$path而已
如果是brew的话不太清楚,我本来也想用brew来装,但是list里没有,更新又慢于是作罢
当前release版本为4.2.2
配置的关键点:
首先是根目录下的/data/db,默认是mongodb的数据库地址,这个文件夹要拥有读写权限
不然会发现报错
[initandlisten] :
exception in initAndListen: IllegalOperation: Attempted to create a lock file on a read-only directory: /data/db, terminating
将db文件夹改成读写权限即可
mongodb异常退出会出问题,会提示写lock文件出错,要么把db文件夹里的lock文件删掉要么在后台运行或者用tmux的session
nodejs链接mongodb的工具是mongoose
使用
npm i mongoose
mongodb的默认端口和地址的格式
mongodb://ipaddr:27017/dbname
在没有dbname的情况下mongodb会帮你创建一个名为dbname的数据库
mongodb的读写都是要异步执行的,所以每次涉及到CRUD操作的函数要加async/await
基本配置到此结束