node.js iOSer初体验

作者: 寒枫傲天 | 来源:发表于2016-10-26 16:48 被阅读132次

    上篇说到swift serve-side 这篇讲讲node.js 的相关知识 ,这是个完全可以部署的服务器 ,swift 暂时只能自己的mac上玩玩...(国内服务器部署swift不知道会有啥坑).
    简单介绍下node。
    node是基于谷歌爹的v8引擎 node跟golang 差不多时候发布,node处理高并发高吞吐很6,但是cpu密集型的计算会阻塞执行,并且影响其他请求,(这里就要说node的单线程这个概念了 但是我不说 说多了就暴露智商了)。所以cpu密集型的任务可以交给其他服务器去处理 golang就不错。

    • 环境安装 (有问题 找谷哥爹)
    • mac os 安装 node
      brew install node
    • 自带npm 创建项目
      npm init
    • 一溜创建完毕之后 就可以跑起来了 (我是用idea 直接创建的node服务器 。express bodypaser 都是idea帮你安装好的)
    npm install express body-parser cookie-parser superagent mongoose jade --save 
    express: node.js 下的web应用程序框架 ,封装了很多方法 帮助开发。 现在koa2是express的替代品 可以尝试
    body-parser ,cookie-parser : 本是express自带的 后来拆分下来了。 做解析用
    superagent : js 下的http请求工具
    mongoose: 操作mongodb的工具
    jade : 模版 。现在也改名了 有ejs .
    
    • 在app.js 中创建一个实例
    var express = require('express');
    var path = require('path');
    var cookieParser = require('cookie-parser');var bodyParser = require('body-parser');
    var app = express();
    #var routes = require('./routes/index');
    #var users = require('./routes/users');
    // view engine setup 中间件
    app.set('views', path.join(__dirname, 'views'));
    app.set('view engine', 'html');
    // uncomment after placing your favicon in /public//
    app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
    app.use(logger('dev'));
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: false }));
    app.use(cookieParser());
    app.use(express.static(path.join(__dirname, 'public')));
    app.use('/', routes);
    app.use('/users', users);
    // catch 404 and forward to error handler
    app.use(function(req, res, next) {  var err = new Error('Not Found');  err.status = 404;  next(err);});
    app.get('/hi',(req,res,next)=>{
      #req:请求对象 req.query能取get请求 req.body能取post请求的参数
      #res:返回操作的对像
    res.send('fuck')
    })
    app.post('/helli',function(req,res,next){
    res.send({'code':200})
    })
    //在 3000端口监听
    app.listen(3000) 
    
    • 有服务器必须要有数据库 这里教大家创建简单的mongodb数据库
    #这是我们的电影信息的数据库 (爬电影用的😄)应该创建个文件叫movie.js
    var mongoose = require('mongoose');
    var Schema = mongoose.Schema;
    //这里给promise确定一个使用的对象 。bluebird 是比较好的promise库 ,不赋值会有错 具体看官网说明
    mongoose.Promise = require('bluebird');
    var movieSchema = new  Schema({  
      title:{type:String},   
     rating:String,   
     releaseYear:Number,    
    hasCreditCookie:Boolean
    });
    // 该语句可以使外界调用这个对像。创建movies的collection..mongodb 的相关知识应该学下。创建的是movie但是实际上mongodb会去做检测,改为复数
    exports.movieSchema = mongoose.model('movie',movieSchema);
    

    如何使用呢

    #在 app.js
    var movieSchema = require('../DB/MovieDB').movieSchema;
    var mongoose = require('mongoose');
    mongoose.promise = require('bluebird');
    mongoose.connect('mongodb://127.0.0.1:27017/movies');
    /* 存数据 */
    app.get('/userinfo',function (req,res,next) { 
     var title = req.query.title; 
     var rating = req.query.rating;  
    var releaseYear = req.query.releaseYear; 
     var has = req.query.hasCreditCookie;  
    var thor = new movieSchema({   
     title:title,    rating:rating,   
     releaseYear:releaseYear,   
     hasCreditCookie:has  });  thor.save(function (err,thor) {   
     if (err) {     
           console.log(err)     
           res.send(err) 
       }    res.send(thor)  })
    });
    /* 查询数据*/
    app.get('/find',function(req,res,next){   movieSchema.findOne({"title":req.query.title},function (err,doc) {    res.send(doc)  })
    });
    /* 修改数据*/
    app.get('/update',function(req,res,next){  movieSchema.update({"title":req.query.title},{ 
       $set:{"releaseYear":req.query.releaseYear}  },function(err){    if (err) { return }   
     res.send("更新成功");  })
    });
    

    如果你完全按照我的代码去运行 八成是错的 。是从项目上扣下的代码 没有验证 见谅~~~ node.js 对于新手来说还是比较简单的 上手容易,快速部署
    当然 还有 redis 这个没说 这个主要用ioredis,还是国人写的
    一个简单的与数据库 带有redis 的服务器很快就能写出来 是不是有点小满足呢?

    相关文章

      网友评论

        本文标题:node.js iOSer初体验

        本文链接:https://www.haomeiwen.com/subject/xladuttx.html