javascript - 无法连接到我的快速服务器中的 api 端点
问题描述
我是新来表达的,目前在连接到 api 时遇到问题
下面是我的代码
const express = require("express");
const session = require("express-session");
const MongoStore = require("connect-mongo");
const flash = require("connect-flash");
const fetch = require("node-fetch");
const axios = require("axios");
const app = express();
const dotenv = require("dotenv");
dotenv.config();
let sessionOptions = session({
secret: "Javascript is so cool",
store: MongoStore.create({ mongoUrl: process.env.CONNECTIONSTRING }),
resave: false,
saveUninitialized: false,
cookie: { maxAge: 1000 * 60 * 60 * 24, httpOnly: true },
});
app.use(sessionOptions);
app.use(flash());
app.use(express.urlencoded({ extended: false }));
app.use(express.json());
app.use(express.static("public"));
app.set("views", "views");
app.set("view engine", "ejs");
const router = require("./router");
const apiRouter = require("./apiRouter");
const options = {
url: "https://rms.pythonanywhere.com/api",
method: "",
json: {},
};
app.use("/", router);
app.use(options.url, apiRouter);
module.exports = app;
下面是我为去往 api 的路线创建的文件
const express = require("express");
const apiRouter = express.Router();
const request = require("request");
const fetch = require("node-fetch");
const userController = require("./controllers/userController");
const pageController = require("./controllers/pageController");
apiRouter.post("/user/create", async function (req, res) {
const api_url = "https://rms.pythonanywhere.com/api";
const fetch_res = await fetch(api_url, options);
const json = await fetch_res.json();
res.json(json);
});
module.exports = apiRouter;
当我提交我的注册表单时,我希望它向 api 的 url 发送发布请求并收到它的响应。但是每当我向 api url 发送一个发布请求时,它都会返回一个错误(无法向 /user/create 发送发布请求)
我真正想要实现的是连接到这个 api 链接 (rms.pythonanywhere.com/api) 并能够引导我的路由进行注册和登录到 api 的其他一些路由。我已经为此奋斗了一个多星期了。请大家帮帮我,我是新手,提前谢谢大家
解决方案
谢谢你们的回复。虽然实际上没有一个解决方案,但它让我知道我需要做什么。
我在解决我的问题时使用的是axios
. 我required("axios")
从 npm store 和 den 安装后,我在apiRouter.post("/user/create")
路线中使用了它。以下是我为解决问题所做的工作
apiRouter.post("/register", async function (req, res) {
const api_url = "https://rms.pythonanywhere.com/api";
axios.post(api_url + "/user/create/", {
first_name: req.body.first_name,
last_name: req.body.last_name,
email: req.body.email,
password: req.body.password,
user_type: req.body.user_type,
username: req.body.username,
}). then((response) =>{}).catch((error){})
});
我能够从我的发布请求中发送数据,并在我的块中apiRouter.post(/register)
收到成功响应then()
和错误响应。catch()
推荐阅读
- javascript - FileReader onprogress
- java - oracle.sql.DATUM 已弃用。它的替代品是什么?
- oauth - AspNet Core 重定向循环中的 Giraffe + GitHub OAuth 流
- android - SmsManager RESULT_ERROR_LIMIT_EXCEEDED
- search - 在多个文件中使用文件名搜索和替换关键字
- python - 如何使用一个 db 来运行 django 服务和另一个来获取数据
- python - 带有错误消息的 Python zip() 函数
- java - 从 RGB 到 HSI 的图像以显示色调图像、饱和度图像和强度图像
- c# - How do I bind a variable number of list items when passing to an action result
- python - TKInter 条目没有与主窗口一起扩展