Web前端最全【零基础】手把手教你用Node搭建服务器并连接MongoDB数据库(2),2024年最新字节跳动视频制作面试

跳槽是每个人的职业生涯中都要经历的过程,不论你是搜索到的这篇文章还是无意中浏览到的这篇文章,希望你没有白白浪费停留在这里的时间,能给你接下来或者以后的笔试面试带来一些帮助。

也许是互联网未来10年中最好的一年。WINTER IS COMING。但是如果你不真正的自己去尝试尝试,你永远不知道市面上的行情如何。这次找工作下来,我自身感觉市场并没有那么可怕,也拿到了几个大厂的offer。在此进行一个总结,给自己,也希望能帮助到需要的同学。

面试准备

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

面试准备根据每个人掌握的知识不同,准备的时间也不一样。现在对于前端岗位,以前也许不是很重视算法这块,但是现在很多公司也都会考。建议大家平时有空的时候多刷刷leetcode。算法的准备时间比较长,是一个长期的过程。需要在掌握了大部分前端基础知识的情况下,再有针对性的去复习算法。面试的时候算法能做出来肯定加分,但做不出来也不会一票否决,面试官也会给你提供一些思路。

  • “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;

跳槽是每个人的职业生涯中都要经历的过程,不论你是搜索到的这篇文章还是无意中浏览到的这篇文章,希望你没有白白浪费停留在这里的时间,能给你接下来或者以后的笔试面试带来一些帮助。

也许是互联网未来10年中最好的一年。WINTER IS COMING。但是如果你不真正的自己去尝试尝试,你永远不知道市面上的行情如何。这次找工作下来,我自身感觉市场并没有那么可怕,也拿到了几个大厂的offer。在此进行一个总结,给自己,也希望能帮助到需要的同学。

面试准备

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

面试准备根据每个人掌握的知识不同,准备的时间也不一样。现在对于前端岗位,以前也许不是很重视算法这块,但是现在很多公司也都会考。建议大家平时有空的时候多刷刷leetcode。算法的准备时间比较长,是一个长期的过程。需要在掌握了大部分前端基础知识的情况下,再有针对性的去复习算法。面试的时候算法能做出来肯定加分,但做不出来也不会一票否决,面试官也会给你提供一些思路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值