提问者:小点点

获取无法获取/


我们使用nextjs/reactjs作为FE,并且我们有一个server.js文件,它允许我们在public/images/uploads上传映像,但是由于某种原因,每当我们运行服务器时,都会出现错误不能获得/

下面是我们在server.js上的代码

const { createServer } = require('http');
const { parse } = require('url');
const next = require('next');
const express = require('express');
const multer = require('multer');
const cors = require('cors');

const port = parseInt(process.env.PORT, 10) || 3000
const dev = process.env.NODE_ENV !== 'production'
var app = next({ dev });
const handle = app.getRequestHandler();
const appExpress = express();

app.prepare().then(() => {
  createServer((req, res) => {
    const parsedUrl = parse(req.url, true)
    const { pathname, query } = parsedUrl

    if (pathname === '/a') {
      app.render(req, res, '/a', query)
    } else if (pathname === '/b') {
      app.render(req, res, '/b', query)
    } else {
      handle(req, res, parsedUrl)
    }
  }).listen(port, err => {
    if (err) throw err
    console.log(`> Ready on http://localhost:${port}`)
  })
})

appExpress.use(express.static('public'))

let storage = multer.diskStorage({
  destination: (req, file, cb) => {
    cb(null, 'public/images/uploads')
  },
  filename: (req, file, cb) => {
    cb(null, Date.now() + '-' + file.originalname)
  }
});
const upload = multer({ storage })

appExpress.use(cors());

appExpress.post('/upload', upload.single('image'), (req, res) => {
  if (req.file)
    res.json({
      imageUrl: `images/uploads/${req.file.filename}`
    });
  else
    res.status("409").json("No Files to Upload.");
});

const PORT = 5000;

appExpress.listen(PORT);
console.log('api running on port: ' + PORT);

这些是我们package.json中包含的脚本

    "dev": "next",
    "build": "next build && next export",
    "start": "next start",
    "server": "node server.js"
  },

希望得到一些答案和建议。这些代码在本地运行,没有任何问题


共1个答案

匿名用户

您需要为GET/添加一条路由,如下所示:

appExpress.get('/', (req, res) => {
    res.json({server: 'Running..!'});
});