Express
应用程序生成器:cnpm install express-generator -g
express -h
列出列出所有可用的命令行参数,该命令如果无法执行,试试cmd管理员权限执行
express --no-view 项目名字
//创建完成后进入项目执行
cnpm i
创建完成后进入项目执行cnpm i
安装依赖
cors
服务器关闭跨域cnpm i cors -S
安装成功后app.js文件导入:
var cors = require('cors')
app.use(cors())
这里需要注意的是要在var app = express();
之后导入
supervisor
,目的启动后修改代码实时更新:cnpm i supervisor -g
安装成功后,package.json文件修改指令:
"start": "supervisor ./bin/www"
npm start
第一个路径是MongoDB 目录,第二个路径是数据存放位置
C:\mongodb\bin\mongod --dbpath c:\data\db --port=27017
mongoose
连接MongoDB 服务器所用cnpm i mongoose -S
bin目录下www文件引入,27017/后面跟的是创建一个数据库名字,可以不写
var mongoose=require('mongoose')
//修改server.list连接成功再分配端口号
mongoose.connect('mongodb://localhost:27017/ReactApp',(err)=>{
if(err){
console.log('连接失败')
}else{
server.listen(port);
console.log('连接成功')
}
})
新建一个models文件,下面建一个js文件用以创建数据库表名、表头
var mongoose=require('mongoose')
var Schema=mongoose.Schema
//创建数据库表头,定义规则
var todoSchema=new Schema({
'text':String,
'isSwitch':Boolean
})
//数据库表名字
var todoModel=mongoose.model('todoModel',todoSchema)//操作数据模型对象
module.exports=todoModel
routes文件下index、users
app.js文件都引入过了,文件里面可以写规则增删改查
//需要引入刚刚创建表名的文件,因为我的文件是todo所以
var todo=require('./models/todo')
//增,设置的数据库表头text与isSwitch一一对应
router.get('/list/add',function(req,res){//向数据库添加
console.log(req.query)
new todo({
'text':req.query.text,
'isSwitch':false
}).save().then(function(result){
console.log(result)
if(result){
res.send({
code:1,
msg:'添加任务成功',
data:result
})
}
})
// res.send('我负责存储任务')
})
router.get('/list',function(req,res){//获取数据库数据
todo.find().then(function(result){
res.send({
data:result
})
})
})
router.get('/list/remove',function(req,res){//根据id删除数据库
console.log('接收到id准备删除数据库')
todo.remove({_id:req.query.id}).then((result)=>{
res.send({
code:1,
msg:'删除成功'
})
})
})
router.get('/list/bool',(req,res)=>{//根据id修改数据
console.log('接收到消息准备修改isSwitch')
todo.update(
{_id:req.query._id},
{
isSwitch:req.query.bool
}
).then(result=>{
res.send({
code:1,
msg:'状态修改成功'
})
})
})
router.get('/list/contents',(req,res)=>{//根据传过来的id、内容,修改数据库内容
console.log('接收到消息准备修改内容')
todo.update(
{_id:req.query._id},
{
text:req.query.text
}
).then(()=>{
res.send({
code:1,
msg:'修改内容成功'
})
})
})
//按条件进行删除
router.get('/list/multiple',(req,res)=>{
todo.remove({isSwitch:true}).then(()=>{
res.send({
code:1,
msg:'删除多个成功'
})
})
})