nodemon index.js // 如果项目内容发生改变,会自动刷新并重启项目
项目运行成功之后,会在终端看到这样的信息:

8.设置启动/自动保存重启的快捷命令:
在package.json文件中的scripts字段下:
- “start”:“node index.js” —— 在终端输入:npm run start即可启动项目
- “server”:“nodemon index.js” —— 在终端输入:npm run server即可通过nodemon启动项目
“scripts”: {
“start”: “node index.js”,
“server”:“nodemon index.js”
}
至此,服务器就搭建好啦( •̀ ω •́ )✧~

此处记录一个小坑,有的时候修改的代码不能及时更新,及时重启服务器也不行,需要把终端整个关掉再运行一次。emm,心肌梗塞的感觉。如果实在检查不出错误,不妨试一试,两试两灵,因此记录一下
然后我们来配置mongo数据库~
创建MongoDB数据库
============
创建项目
1.在MongoDB官网注册一个账号,然后新建一个项目:

2.命名项目
给项目起个名字,这里起名:restfule-api-test

3.由于是自己测试搭建,因此User只设置成自己,没有添加其他用户,然后点击”创建项目“

4.这时会有一个验证信息,通过你注册的邮箱账号发给你,点击一下里面的"sign in"按钮,然后重新登录一下官网账号,项目就创建成功了
配置项目
左下角有个"get start"向导,可以根据"get start"一步步操作(没有也没关系,只要主要的步骤不落下就可以搭建成功)
新建集群
1.先点击"创建集群"按钮

2.选择免费的服务

3.页面会默认勾选免费(FREE)的服务,确认一下左下角的FREE标记即可,点击创建集群

等待几分钟,这个过程稍慢些

新的集群就创建好啦

创建一个新的数据库用户
1.左边侧边栏选择"Database Access"

2.选择添加新的数据库用户

3.默认是通过用户名密码来认证的,我们添加用户名和密码即可,密码不能过于简单

4.默认用户权限是可读可写的,可以修改

5.点击添加用户

6.添加成功
在允许访问列表中添加IP地址
1.在侧边栏选择"Network Access",点击添加IP地址

2.由于是自己测试,此处选择允许所有IP访问(可以根据需要,限制某个网段才能访问)

此时状态为pending,需要通过注册的邮箱再次验证

认证之后,状态就变成了Active

数据库连接自己的集群
左侧侧边栏选择"Clusters",会显示一个"CONNECT"按钮,点击连接

可以选择用于连接我们的应用:

搭建完成后,会给我们一个连接服务器的地址,node通过这个地址与刚刚创建的mongo数据库连接

注:如果之后用不到这个集群,要删除,可以通过"Clusters"的"Terminate"删除集群

Node连接MongoDB数据库
================
1.安装mongoose
npm install mongoose --save
2.为了能够使用post功能,还需要安装body-parser:
npm install body-parser
3.新建文件夹config,该文件夹下新建文件key.js用来存储mongodb的地址
module.exports = {
mongoURI:“mongodb官网给的地址,记得需要替换成刚刚设置的密码”
}
4.在index.js中引入mongoose和body-parser,并连接mongoDB数据库:
// 引入mongoose
const mongoose = require(“mongoose”);
// 引入刚刚创建的数据库
const db = require(“./config/keys”).mongoURI;
// 引入body-parser,用于执行post操作
const bodyParser = require(“body-parser”);
// 连接mongodb
mongoose
.connect(db,{ useNewUrlParser: true, useUnifiedTopology: true})
.then(()=>{console.log(“mongodb connected”)})
.catch(err => console.log(err))
5.测试与mongodb的连接
运行项目,如果打印出"mongodb connected",代表连接成功:

6.测试post操作,创建自定义模块users
新建一个文件夹,名为module,该文件夹下建一个文件,命名users.js,此为自定义的模块,存放要存储的数据格式
const mongoose = require(“mongoose”);
const Schema = mongoose.Schema;
// 创建UserSchema,包含姓名、邮箱、密码、头像、创建日期
// 其中,姓名、邮箱、密码是必需的
const UserSchema = new Schema({
name:{
type:String,
require:true
},
email:{
type:String,
require:true
},
password:{
type:String,
require:true
},
profilePicture:{
type:String
},
Date:{
type:Date,
default:Date.now()
}
})
// 将UserSchema开放出去,别名users
module.exports = User = mongoose.model(“users”,UserSchema)
7.设置路由,执行post操作
新建文件夹routers,再建一个子文件夹api,子文件夹api下创建User.js,是users模块的路由文件
const express = require(“express”);
const router = express.Router();
// 测试路由功能
router.get(“/test”,(req,res)=>{
res.json({msg:“route works”})
})
// 测试连接MongoDB的路由并post数据到数据库
router.post(‘/register’, (req, res) => {
// console.log(req.body);
User.findOne({ email: req.body.email })
.then((user) => {
if (user) {
return res.status(400).json({ email: “邮箱已被注册!” })
} else {
const newUser = new User({
name: req.body.name,
email: req.body.email,
password: req.body.password
})
// 密码加密
bcrypt.genSalt(10, function (err, salt) {
bcrypt.hash(newUser.password, salt, (err, hash) => {
// Store hash in your password DB.
if (err) throw err;
newUser.password = hash;
newUser.save()
.then(user => { res.json(user), console.log(newUser) })
.catch(err => console.log(err))
});
});
}
})
})
module.exports = router;
8.使用模块,测试post操作下与mongodb的连接
在index.js文件中:
//引入users
const users=require(‘./routers/api/User’);
// 使用bodyParser中间件,对应postman中Body的x-www-form-urlencoded格式
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-Y9PV1lrp-1715798148909)]
[外链图片转存中…(img-DjtFUiqo-1715798148910)]
[外链图片转存中…(img-IQXqLh60-1715798148910)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

1884

被折叠的 条评论
为什么被折叠?



