项目:在node创建简单的网站服务器(一)

1.创建服务器

const http = require('http');

//创建服务器
const app = http.createServer();

//为服务器对象添加请求事件
app.on('request', (req, res) => {
	res.end('ok')
})

//监听端口
app.listen(3000);

2.链接数据库

const mongoose = require('mongoose');

//27017 数据库链接,一般在connect的第二个参数里要添加一个对象参数
mongoose.connect('mongodb://localhost/education')
	.then(() => console.log('数据库连接成功'))
	.catch(() => console.log('数据库连接失败'))

成功后:

3.创建用户集合

  a. 需要创建Schema构造函数

//创建用户集合规则
const userSchema = new mongoose.Schema({
	name: {
		type: String,
		required: true,
		minlength: 2,
		maxlength: 20
	},
	age: {
		type: Number,
		min: 3,
		max: 130
	},
	password: String,
	email: String,
	hobbies: [ String ]
})

  创建集合,往后的增删改查都依赖这个构造函数

//创建集合,返回的是集合构造函数
const User = mongoose.model('User', userSchema);

  b. 创建文档:(有两种方式)

//创建文档
const user = new User({
	name: '刘宇',
	age: 22,
	password: '12345678',
	email: '2725891726@qq.com',
	hobbies: ['数据结构','计算机导论']
})

//将文档插入数据库中
user.save()

  第二种创建文档的方式:

//第一个参数是向集合当中插入的文档,第二个参数是回调函数
//回调函数中又有两个参数(err, result)result是插入文档的数据
User.create({name: '大哥',age: 22,password: '12345678',email: '277jp@qq.com',hobbies: ['数据结构','计算机导论']}, (err, result) => {
	console.log(err)
	console.log(result)
})

  结果:

 关于数据库的所有操作都是异步操作,所以create函数也返回的是promise对象即另一种写法:

User.create({name: '大海',age: 22,password: '12345678',email: '277lujing@qq.com',hobbies: ['数据结构','计算机导论']})
	.then(result => {
		console.log(result)
	})
	.catch(err => {
		console.log(err)
	})

结果:

 关于如何创建文档,如果现成的JSON文件,可以使用命令直接进行导入:

mongoimport -d 数据库名称 -c 集合名称 --file ./文档集合名称.json

完整代码:

//app.js 中的代码
//搭建网站服务器
//链接数据库,创建用户集合
//实现增删改查


const http = require('http');
const mongoose = require('mongoose');

//27017 数据库链接,一般在connect的第二个参数里要添加一个对象参数
mongoose.connect('mongodb://localhost/education')
	.then(() => console.log('数据库连接成功'))
	.catch(() => console.log('数据库连接失败'))

//创建用户集合规则
const userSchema = new mongoose.Schema({
	name: {
		type: String,
		required: true,
		minlength: 2,
		maxlength: 20
	},
	age: {
		type: Number,
		min: 3,
		max: 130
	},
	password: String,
	email: String,
	hobbies: [ String ]
})

//创建集合,返回的是集合构造函数
const User = mongoose.model('User', userSchema);

// //创建文档
// const user = new User({
// 	name: '刘宇',
// 	age: 22,
// 	password: '12345678',
// 	email: '2725891726@qq.com',
// 	hobbies: ['数据结构','计算机导论']
// })

// //将文档插入数据库中
// user.save()

//第一个参数是向集合当中插入的文档,第二个参数是回调函数
//回调函数中又有两个参数(err, result)result是插入文档的数据
// User.create({name: '卢静',age: 22,password: '12345678',
//     email: '277lujing@qq.com',hobbies: ['数据结构','计算机导论']}, (err, result) => {
// 	console.log(err)
// 	console.log(result)
// })

User.create({name: '大海',age: 22,password: '12345678',email: '277lujing@qq.com',hobbies: ['数据结构','计算机导论']})
	.then(result => {
		console.log(result)
	})
	.catch(err => {
		console.log(err)
	})

//创建服务器
const app = http.createServer();

//为服务器对象添加请求事件
app.on('request', (req, res) => {
	res.end('ok')
})

//监听端口
app.listen(3000);

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值