You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中Moralis v2 API路由调用报404错误求助

Node.js路由与Moralis v2对接404错误排查方案

核心问题定位与修复

1. 错误的响应状态码(直接触发404)

你的moralis.controller.js中,request方法在逻辑执行成功时错误返回了404状态码,这会让客户端直接收到404响应:

// 错误代码
return res.status(404).send({
  result
});

修改为成功状态码(比如200):

// 修复后
return res.status(200).send({
  res: "OK",
  result
});

2. Moralis SDK未初始化

代码中仅引入了Moralis,但未调用初始化方法Moralis.start(),这会导致Moralis.Auth.requestMessage调用失败,且catch块未给客户端返回响应,可能引发前端超时或异常:
在moralis.controller.js顶部添加初始化代码(需填入你的Moralis API密钥):

const config = require("../config/config.js");
const MoralisDapp = require('moralis');
const Moralis = MoralisDapp.default;

// 初始化Moralis(必须步骤)
Moralis.start({
  apiKey: config.MORALIS_API_KEY, // 从你的配置文件或环境变量获取
});

同时完善catch块的响应逻辑,避免客户端无响应:

catch (e) {
  console.error(e);
  return res.status(500).send({
    res: "KO",
    msg: "服务器内部错误",
    error: e.message
  });
}

3. 请求参数与路由基础检查

  • 确认前端请求的http://localhost:1337/api/moralis/request-message是POST方法,且请求Body包含所有必填参数(address、chain、network、DOMAIN等),注意参数名大小写需与后端代码一致(比如后端用req.body.DOMAIN,前端不能传domain)。
  • 检查server.js中是否正确配置了Express实例与请求体解析中间件:
const express = require('express');
const app = express();
// 必须添加解析JSON请求体的中间件,否则无法获取req.body
app.use(express.json());

// 引入路由
require("./routes/moralis.routes")(app);

app.listen(1337, () => {
  console.log("服务器运行在1337端口");
});

额外注意事项

  • 确保你的Moralis API密钥拥有Auth相关权限,可在Moralis控制台中检查。
  • 测试时可使用Postman直接发送POST请求,排除前端代码的干扰。

内容的提问来源于stack exchange,提问作者J.Doe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 04:05:15