node js express app.get и app.post не работают - PullRequest
0 голосов
/ 25 февраля 2020

Я написал пример кода для 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);

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Это так:

app.route('/product/').get(function (req, res) {

Если вы хотите добавить несколько маршрутов, скажем, API, вы сделаете следующее: В некоторых модулях API. js:

const apiRoutes = express.Router();
apiRoutes.get('/some', () => {});
apiRoutes.post('/some', () => {});

Тогда скажем ваш сервер:

app.use('/api', apiRoutes);
0 голосов
/ 25 февраля 2020

Ваш код работает нормально. Для тела печати вы должны использовать bodyParser в express js.

   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);
...