节点 js 表达 app.get 和 app.post 不起作用
node js express app.get and app.post does not work
我为 express js 写了一个代码示例,它可以工作,但是当我使用 app.post 或 app.get 而不是 app.use 时,代码不起作用并且 ide (webstorm) 也无法识别 app.post 或 app.get
是不是用新版本的express之类的东西代替了?
这是我的代码:
const express = require('express');
let app = express();
app.use('/addp',(req,res,next)=>{
res.send("<form action='/product' method='post'><input type='text' name='entry'><button type='submit'>add</button></form>")
})
app.use(express.urlencoded({extended:true}));
//next line does not work
//if I use app.use it will work fine
app.get("/product",(req,res)=>{
console.log(req.body);
res.redirect('/');
})
app.use('/',(req,res)=>{
res.send("<h1>done</h1>")
})
app.listen(3000);
您的代码运行良好。对于打印主体,您应该必须在 express js 中使用 bodyParser。
const express = require('express');
let app = express();
var bodyParser = require('body-parser')
app.use('/addp', (req, res, next) => {
res.send("<form action='/product' method='post'><input type='text' name='entry'><button type='submit'>add</button></form>")
})
app.use(express.urlencoded({ extended: true }));
app.use(
bodyParser.json({
limit: "250mb"
})
);
app.use(
bodyParser.urlencoded({
limit: "250mb",
extended: true,
parameterLimit: 250000
})
);
app.get("/product", (req, res) => {
res.send("Get Request")
})
app.post("/product", (req, res) => {
console.log("-------------")
console.log(req.body);
console.log("-------------")
res.send("Post Request")
})
app.use('/', (req, res) => {
res.send("<h1>done</h1>")
})
app.listen(3000);
是这样的:
app.route('/product/').get(function (req, res) {
如果你想添加多条路线比方说api,你会这样做:
在某些模块中 api.js:
const apiRoutes = express.Router();
apiRoutes.get('/some', () => {});
apiRoutes.post('/some', () => {});
那么假设你的服务器:
app.use('/api', apiRoutes);
我为 express js 写了一个代码示例,它可以工作,但是当我使用 app.post 或 app.get 而不是 app.use 时,代码不起作用并且 ide (webstorm) 也无法识别 app.post 或 app.get
是不是用新版本的express之类的东西代替了? 这是我的代码:
const express = require('express');
let app = express();
app.use('/addp',(req,res,next)=>{
res.send("<form action='/product' method='post'><input type='text' name='entry'><button type='submit'>add</button></form>")
})
app.use(express.urlencoded({extended:true}));
//next line does not work
//if I use app.use it will work fine
app.get("/product",(req,res)=>{
console.log(req.body);
res.redirect('/');
})
app.use('/',(req,res)=>{
res.send("<h1>done</h1>")
})
app.listen(3000);
您的代码运行良好。对于打印主体,您应该必须在 express js 中使用 bodyParser。
const express = require('express');
let app = express();
var bodyParser = require('body-parser')
app.use('/addp', (req, res, next) => {
res.send("<form action='/product' method='post'><input type='text' name='entry'><button type='submit'>add</button></form>")
})
app.use(express.urlencoded({ extended: true }));
app.use(
bodyParser.json({
limit: "250mb"
})
);
app.use(
bodyParser.urlencoded({
limit: "250mb",
extended: true,
parameterLimit: 250000
})
);
app.get("/product", (req, res) => {
res.send("Get Request")
})
app.post("/product", (req, res) => {
console.log("-------------")
console.log(req.body);
console.log("-------------")
res.send("Post Request")
})
app.use('/', (req, res) => {
res.send("<h1>done</h1>")
})
app.listen(3000);
是这样的:
app.route('/product/').get(function (req, res) {
如果你想添加多条路线比方说api,你会这样做: 在某些模块中 api.js:
const apiRoutes = express.Router();
apiRoutes.get('/some', () => {});
apiRoutes.post('/some', () => {});
那么假设你的服务器:
app.use('/api', apiRoutes);