学习电脑,计算机系统故障维护,电脑技术,电脑知识学习-就上第二电脑网
当前位置: 首页 > 电脑知识 > 电脑基础

电脑一直在欢迎的界面通过express搭建自己的服务器

 更新时间: 2019-09-28 00:07:48   作者:第二电脑网   来源:第二电脑网   浏览数:225   我要评论

前言 为了模拟项目上线,我们就需要一个服务器去提供API给我们调用数据。这次我采用expess框架去写API接口。所有请求都是通过ajax请求去请求服务器来返回数据。第一次用ode

前言

为了模拟项目上线,我们就需要一个服务器去提供API给我们调用数据。这次我采用express框架去写API接口。所有请求都是通过ajax请求去请求服务器来返回数据。第一次用node写后端,基本就是摸着石头的过河,文中有什么不足不处欢迎指出。

安装express框架

传送门: express官方

然后介绍一下需要引入的中间件,node本身提供了一些库。我们可以直接通过require去引用,对于未提供的库,我们也可以通过手动npm去安装

var fs = require('fs');  操作文件模块
var http = require('http');  http模块
var url = require('url');   获取url信息模块
var qs = require('querystring'); 处理url参数模块
var path = require('path');  文件路径模块
var bodyParser = require('body-parser'); 请求体对象化 (必须)否则后台无法解析前端发送的body内容

接下来直接启用模块

app.use(bodyParser.json());

// 访问静态资源文件 这里是访问所有dist目录下的静态资源文件
app.use(express.static(path.resolve(__dirname, '../dist')))
app.use(express.static('public'));

// 因为是单页应用 所有请求都走/dist/index.html
app.get('/', function(req, res) {
  const html = fs.readFile(path.resolve(__dirname, '../dist/index.html'), 'utf-8');
  res.send(html)
});

//处理请求跨域

app.all('*', function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "X-Requested-With");
  res.header("Content-Type", "application/json;charset=utf-8");
  res.header("Access-Control-Allow-Headers", "content-type");
  next();
});

准备工作做完可以开始动手写接口了。关于数据库可以模拟一个json,也可以真实模拟上线数据库。关于本文设计的mongodb数据库,有兴趣可以看我的另一篇文章

快速搭建属于自己的数据库——mongodb

下面会划成3块说明——数据库的对接、请求的操作、文件请求的操作。

数据库连接

这里我假设你已经安装了mongodb数据库并成功启用。仔细阅读express教程你会发现框架提供了对mongodb的支持,mongodb有非常多的扩展插件去使用该数据库 比如mongoose。这里我们使用express官方提供的mongoskin来链接数据库。

$ npm install mongoskin

#####官方实例

var db = require('mongoskin').db('localhost:27017/animals');

db.collection('mamals').find().toArray(function(err, result) {
  if (err) throw err;
  console.log(result);
});

安装成功后 ,我们就首先把使用的数据库引入,代码如下

电脑知识网对《电脑一直在欢迎的界面通过express搭建自己的服务器》总结来说,为我们学习编程很实用。

var db = require('mongoskin').db('mongodb://localhost:27017/blog');
var ObjectId = require('mongodb').ObjectID;

以上代码表示我们成功连接了blog数据库并且启用了私有ID,objectID是mongodb生成数据自动添加的ID。可以直接拿来用。到这里数据库和服务器就已经对接完毕了。

对前端发送的请求进行处理

处理get请求

/**
 * 获取文章信息
 */
app.get('/article/info', function (req, res) {
  >>>  获取请求参数
  var arg = qs.parse(url.parse(req.url).query);
  var id = arg.id;
  >>>  链接数据库根据参数查找文档并返回
  db.collection('articleList').find({ "_id": ObjectId(id)}).toArray(function(err, result) {
    if (err) throw err;
    console.log(result)
    res.end(JSON.stringify(result))
  });
});

以上代码就实现了对一个get请求的处理,通过参数模块获取了url的参数,db也就是已经连接的数据库。根据ID对‘articleList’的数据表进行搜索,处理完毕后 通过res.end()返回数据结束响应。

处理post请求

/**
 * 提交留言信息
 */
app.post('/board/post', function (req, res) {
  >>>>  获取请求参数
  var data = {
    date: req.body.date,
    name: req.body.name,
    content: req.body.content,
    time: req.body.time,
    position: req.body.position
  };
  
  >>> 链接数据库并插入数据
  
  db.collection('board').insert(data, function(err, result) {
    if(err) {
      res.end('Error:'+ err)
    }
    res.end('提交成功')
  });
});

post请求的参数获取和get不同 可以直接通过req.body去获取前端传输的请求体。通过js对象的方式去获取参数。然后根据参数执行数据库操作。到此,基本的请求也就介绍完毕了。下面说下怎么处理图片的上传此类常见的文件操作需求。

对前端的文件请求进行处理
更多:电脑一直在欢迎的界面通过express搭建自己的服务器
https://www.002pc.com/diannaojichu/1052.html

你可能感兴趣的express,服务器,搭建,通过,自己

关于我们 - 广告合作 - 联系我们 - 免责声明 - 网站地图 - 投诉建议 - 在线投稿

  浙ICP备140365454号

©CopyRight 2008-2020 002pc.COM Inc All Rights Reserved. 第二电脑网 版权所有 联系QQ:282523118