快速路线不呈现
Express routes not rendering
我不明白为什么我的路线“抓取”不会呈现。我已经尝试了所有我能想到的方法,甚至将所有内容都更改为非常基本的路线,但我还是无法正常工作。
app.js
const indexRoute = require("./routes/index");
const scrapeRoute = require("./routes/scrape");
// view engine setup
app.set("views", path.join(__dirname, "views"));
app.set("view engine", "ejs");
app.use(cors());
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, "public")));
app.use(logger("dev"));
// Routes
app.use("/", indexRoute);
app.use("/scrape", scrapeRoute);
module.exports = app;
这是路线:
const express = require("express");
const router = express.Router();
router.post("/", (req, res) => {
res.send(req.body);
});
module.exports = router;
索引路由工作得很好。由于某种原因,路线 'scrape' 将无法正常工作。我有在那里抓取网站的逻辑,但当它不起作用时,我想我会把它改成一条基本路线,看看我是否能得到任何东西,现在它只是在我去 localhost:9000/刮
您确定您正在从客户端拨打 post 电话吗?
如果您只是要在浏览器中 http://localhost:9000/scrape
,那么这是一个 GET 请求,而不是 POST 请求。而且,您需要:
const express = require("express");
const router = express.Router();
router.get("/", (req, res) => {
res.send("hello");
});
module.exports = router;
要从中获得响应 - 更改为 router.get()
。而且,因为它是一个 GET 请求,所以没有正文,所以 req.body
对于 GET 请求来说可以预见是空的。
要从浏览器发送 POST 请求,您需要让浏览器提交一个带有 method="POST"
和 action="/scrape"
作为 <form>
标签属性的表单或者您需要使用 Ajax 通过 fetch()
接口或 XMLHttpRequest
接口以编程方式从 Javascript 发送 POST 请求。
我不明白为什么我的路线“抓取”不会呈现。我已经尝试了所有我能想到的方法,甚至将所有内容都更改为非常基本的路线,但我还是无法正常工作。
app.js
const indexRoute = require("./routes/index");
const scrapeRoute = require("./routes/scrape");
// view engine setup
app.set("views", path.join(__dirname, "views"));
app.set("view engine", "ejs");
app.use(cors());
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, "public")));
app.use(logger("dev"));
// Routes
app.use("/", indexRoute);
app.use("/scrape", scrapeRoute);
module.exports = app;
这是路线:
const express = require("express");
const router = express.Router();
router.post("/", (req, res) => {
res.send(req.body);
});
module.exports = router;
索引路由工作得很好。由于某种原因,路线 'scrape' 将无法正常工作。我有在那里抓取网站的逻辑,但当它不起作用时,我想我会把它改成一条基本路线,看看我是否能得到任何东西,现在它只是在我去 localhost:9000/刮
您确定您正在从客户端拨打 post 电话吗?
如果您只是要在浏览器中 http://localhost:9000/scrape
,那么这是一个 GET 请求,而不是 POST 请求。而且,您需要:
const express = require("express");
const router = express.Router();
router.get("/", (req, res) => {
res.send("hello");
});
module.exports = router;
要从中获得响应 - 更改为 router.get()
。而且,因为它是一个 GET 请求,所以没有正文,所以 req.body
对于 GET 请求来说可以预见是空的。
要从浏览器发送 POST 请求,您需要让浏览器提交一个带有 method="POST"
和 action="/scrape"
作为 <form>
标签属性的表单或者您需要使用 Ajax 通过 fetch()
接口或 XMLHttpRequest
接口以编程方式从 Javascript 发送 POST 请求。