mongodb基本使用、cors关闭跨域、supervisor安装与使用、Express 应用程序生成器

mongodb基本使用、cors关闭跨域、supervisor安装与使用

安装 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 服务器

第一个路径是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、usersapp.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:'删除多个成功'
        })
    })
})

你可能感兴趣的:(React)