【问题标题】:How move custom route outside of server.js in jsonServer如何在 jsonServer 中将自定义路由移到 server.js 之外
【发布时间】:2019-07-19 16:34:19
【问题描述】:

server.js 中,我使用的是json-server。我要搬家

server.get('/api/1.0/searchDoc', (req, res) => {
    const searchType = req.query['searchType'];
    const searchValue = req.query['searchValue'];
    res.status(200).jsonp({searchType, searchValue});
});

route.js 然后导入server.js。如何实现?

完整代码

// json server
const jsonServer = require('json-server');
// create server
const server = jsonServer.create();

// data as router
const allDocData = require('../response.json');
const searchDocData = require('../searchResponse.json');
const dataObj = {
    'mockResponse': allDocData,
    'searchDocData': searchDocData
};

const router = jsonServer.router(dataObj);

// mid-ware
const middlewares = jsonServer.defaults();

// package.json uses port 4000
const port = 4000;

// live before router
// e.g. http://localhost:4000/api/1.0/searchDoc/?searchType='customerId'&searchValue='1234'
server.get('/api/1.0/searchDoc', (req, res) => {
    const searchType = req.query['searchType'];
    const searchValue = req.query['searchValue'];
    res.status(200).jsonp({searchType, searchValue});
});

// use mid-ware
server.use(middlewares);
// use data
server.use(router);

// user body parser
server.use(jsonServer.bodyParser);
// use mid-ware
server.use(middlewares);

// use router
server.use(router);

// listen
server.listen(port);

【问题讨论】:

    标签: javascript node.js json


    【解决方案1】:

    你的意思是这样吗? www.js

    const JSONServer = require('jsonserver')
    
    function build() {
     const server = JSONServer.create()
    
     server.get('/api/1.0/searchDoc', (req, res) => {
        const searchType = req.query['searchType'];
        const searchValue = req.query['searchValue'];
        res.status(200).jsonp({searchType, searchValue});
     });
    
     return server
    }
    
    module.exports = build
    

    例如在另一个文件index.js

    const build = require('./www.js')
    const server = build()
    // use mid-ware
    server.use(middlewares);
    // use data
    server.use(router);
    
    // user body parser
    server.use(jsonServer.bodyParser);
    // use mid-ware
    server.use(middlewares);
    
    // use router
    server.use(router);
    
    // listen
    server.listen(port);
    

    只要退货就可以。

    【讨论】:

      【解决方案2】:

      有多种方法可以实现这一点 - 另一种方法是将server 实例注入route.js 模块,这将使您的应用的路由问题能够被提取为:

      route.js

      /* 
      Define default module function that configures apps routing for the specified 
      server instance
      */
      module.exports = function(server) {
      
          server.get('/api/1.0/searchDoc', (req, res) => {
              const searchType = req.query['searchType'];
              const searchValue = req.query['searchValue'];
              res.status(200).jsonp({searchType, searchValue});
          });
      }
      

      server.js

      const jsonServer = require('json-server');
      
      /* 
      Import default module function from route.js module. We'll assing this
      function to the configureRoutes variable and call it in the server.js when
      needed. This import assumes route.js exists in the same directory of this
      source file 
      */
      const configureRoutes = require('./route.js');
      
      const server = jsonServer.create();
      const allDocData = require('../response.json');
      const searchDocData = require('../searchResponse.json');
      const dataObj = {
          'mockResponse': allDocData,
          'searchDocData': searchDocData
      };
      
      const router = jsonServer.router(dataObj);
      const middlewares = jsonServer.defaults();
      
      const port = 4000;
      
      /*
      Call configureRoutes() to configure routes on your server instance via the
      new route.js module
      */
      configureRoutes(server);
      
      server.use(middlewares);
      server.use(router);
      server.use(jsonServer.bodyParser);
      server.use(middlewares);
      server.use(router);
      
      server.listen(port);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-24
        • 1970-01-01
        • 1970-01-01
        • 2011-05-12
        • 2022-11-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多