当前位置: 首页 > 知识库问答 >
问题:

获取无法获取/

高茂
2023-03-14

我们使用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个答案

谷梁裕
2023-03-14

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

appExpress.get('/', (req, res) => {
    res.json({server: 'Running..!'});
});
 类似资料:
  • 我一直在尝试使用nativescript创建一个android应用程序。我正在使用fetch模块从服务器获取响应。当我试图从httpbin获得响应时。org/get,没关系。但当我试图从本地服务器获取响应时,网络请求失败。错误 发送到httpbin。组织/获取- 发送到本地主机:8000/api- 当我尝试从纯节点中的localhost:8000/api获取响应时。js通过请求模块。它工作得很好。

  • 将android Studio更新到3.1后,我的项目未编译。与Gradle同步时显示错误。 javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException: PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到

  • 问题内容: 我已经在几个线程中看到了答案,但对我却没有解决,而且由于我的问题偶尔发生,因此问这个问题是否有人有任何想法。 我正在使用jedis版本2.8.0,Spring Data Redis版本1.7.5。和redis服务器版本2.8.4用于我们的缓存应用程序。 我有多个缓存保存在redis中,并且从redis获得请求。我正在使用spring数据redis API保存和获取数据。 所有保存和获取

  • 我每5分钟运行一次批处理作业,我不希望其他节点运行同一个作业,因此我使用绝地锁将一个对象锁定5分钟。这样,如果另一个节点试图运行同一个作业,它们就不会得到锁。工作是在获得锁后开始的,当我试图从Redis读取它时,我得到以下异常情况: 这是我的密码 spring启动应用程序。属性文件 作业在开始时执行以下代码以获得锁 之后,redis仓库类试图读取特定模式的值... 这就是我在日志中看到的完全例外。

  • 我成功地获得了20个请求的响应,但无法获得其余10个请求的响应。我面临的问题是,在前20个请求使用了20个连接之后,其余的10个请求无法从池中获得jedis连接,因此我得到以下例外情况: 我已经在网上搜索,但没有找到解决办法。有人能帮我吗?

  • 问题内容: 因此,我正在尝试完成从Google获取json数据的简单任务,但是jQuery代码的这一小部分将无法运行。您能帮我弄清楚为什么吗? 最佳解决方案:添加“&callback =?” 到网址末尾。非常感谢您的帮助! 问题答案: 它称为“ 同源起源策略”。简而言之:您的代码所在的域是您的JavaScript可以与之通信的唯一域(默认情况下) 您会收到如下错误: