首页 > 解决方案 > 如何让 npm 包 json-server 与 API Routes 一起运行

问题描述

我需要在pages/api/json-server/index.js 之类的文件中运行 npm 包 json-server ( https://www.npmjs.com/package/json-server )。下面是一个简单的快速服务器的样子,它可以作为持久性存储读取和写入文件 db.json。

我找到了本指南https://vercel.com/guides/using-express-with-vercel关于如何使用 Next API Routes 进行快速工作,但是当此代码启动时,如何使 json-server 工作对我来说并不明显它是自己的快递服务器。这是本文展示的构建“Routes API”服务器所需的内容。

const app = require('express')();
const { v4 } = require('uuid');

app.get('/api', (req, res) => {
  const path = `/api/item/${v4()}`;
  res.setHeader('Content-Type', 'text/html');
  res.setHeader('Cache-Control', 's-max-age=1, stale-while-revalidate');
  res.end(`Hello! Go to item: <a href="${path}">${path}</a>`);
});

app.get('/api/item/:slug', (req, res) => {
  const { slug } = req.params;
  res.end(`Item: ${slug}`);
});

module.exports = app;

这是来自 json-server 文档的自定义 json-server,仅使用 express 运行。

// server.js
const jsonServer = require('json-server')
const server = jsonServer.create()
const router = jsonServer.router('db.json')
const middlewares = jsonServer.defaults()
 
server.use(middlewares)
server.use(router)
server.listen(3000, () => {
  console.log('JSON Server is running')
})

标签: node.jsexpressnext.jsvercel

解决方案


推荐阅读