官网:http:// mean.io
拷贝过来的文件不需要一个一个安装,直接 npm install 就会根据package-lock.json 自动安装
1. MEAN 概念:
1. 全栈式框架
starting from the top (code running in the browser) to the bottom (database)
2. 开源组件集合MongoDB: 数据库。用于后端应用存储数据,格式:json文档
Express(or Express.js): 构建后端web应用的框架。在Node.js 上运行。
Angular: 构建前端web应用的框架。MVC框架。运行浏览器的JavaScript code。
Node.js: javascript 运行环境。
2. 安装MongoDB
安装
- 官网安装
- 创建mongodb 存储文件
mkdir -p /data/db //默认DB 存储数据位置,可以修改
$(yourname): whoami (in your terminal)
sudo chown -R (yourname) /data/db
Then you need to start mongodb server by,
两个重要目录:
data directory : /var/lib/mongodb
log directory: /var/log/mongodb
启动命令:
sudo service mongod start
启动成功后的标志是日志内容/var/log/mongodb/mongod.log的最后一行是:
[initandlisten] waiting for connections on port 27017
苍天阿,我开始一直以为是卡住啦 :( ,安装说明看了无数遍,一直以为这条是无关紧要的一步,没有细看。也怪刚开始安装总是各种错误有了心理阴影啦。
// Stop MongoDB
sudo service mongod stop
// Restart MongoDB
sudo service mongod restart
使用命令:
mongo
即打开一个mongo shell 连接 mongod ,默认端口:localhost: 27017
安装或使用过程可能出现的各种问题
遇到问题: 1. 无法启动,没反应
尝试方法:
- 刚安装可能有mask,去mask
sudo systemctl unmask mongodb
sudo service mongod start
- 启动不成功,接着往下试
If it doesn't work than run following command,
sudo mongod
Now you can connect to mongodb using your mongo shell
mongo
Now you are connected!
遇到问题: 2. mongoldb 报错 Failed to set up listener: SocketException: Address already in use
有前端启动的进程,ps aux | grep mongodb 找出来, kill
遇到问题: 3. Failed to unlink socket file Unknown error
找到/tmp/mongodb-27017.sock 文件删除
遇到问题: 4. # ERROR: /ng-app/node_modules/bcrypt/lib/binding/bcrypt_lib.node: invalid ELF header
npm install bcrypt (npm install 后还是报错的话)
遇到问题: 5. 后台启动端口 in use
lsof -i tcp:3000
找到正在运行的pid kill pid
最开心的时刻并不一定是报错解决啦,也可能是换了一种错误。 From
3. 安装 Express
官方安装方法: www.expressjs.com.cn/starter/installing.html
npm install -g express // -g 全局安装
4. 安装Angular
npm install xxx --save-dev //for devDependencies
npm install xxx --save // for dependencies
完整项目启动顺序
- 安装依赖:
npm install
- DB:
sudo mongod / sudo service mongod start
- 后台服务:
npm run server.js
- Angular :
nodemon / ng serve --open
完整项目思路
http:localhost:4200/router
angular 前端服务器显示
》 setHeader 跨域访问
http:localhost:3000/router
express /nodeJs 后端服务器
reference:
https://www.jianshu.com/p/eeb8227e734f
https://www.imooc.com/article/1641