Ошибка при подключении к узлу «большинство промежуточного программного обеспечения (например, bodyParser), и оно должно устанавливаться отдельно с помощью nodejs» - PullRequest
1 голос
/ 21 мая 2019

Я пытаюсь настроить приложение моего узла и в настоящее время получаю сообщение об ошибке:

Ошибка: большая часть промежуточного программного обеспечения (например, bodyParser) больше не связана с Express и должна быть установлена ​​отдельно.Пожалуйста, смотрите https://github.com/senchalabs/connect#middleware.

Я был на сайте и не совсем уверен, что мне нужно искать, так как я совсем новичок в node.js.Буду признателен за помощь!

. Вот полное сообщение.

[0] Ошибка: большая часть промежуточного программного обеспечения (например, bodyParser) больше не связана с Express и должна устанавливаться отдельно.Смотрите https://github.com/senchalabs/connect#middleware. [0] в Function.get (/Users/thomashunt/Desktop/react_express_starter/node_modules/express/lib/express.js:110:13) [0] в app.post (/ Users /thomashunt / Desktop / react_express_starter / server.js: 45: 19) [0] в Layer.handle [как handle_request] (/Users/thomashunt/Desktop/react_express_starter/node_modules/express/lib/router/layer.js:95:5) [0] в следующем (/Users/thomashunt/Desktop/react_express_starter/node_modules/express/lib/router/route.js:137:13) [0] в Route.dispatch (/ Users / thomashunt / Desktop /act_express_starter / node_modules)/express/lib/router/route.js:112:3) [0] в Layer.handle [как handle_request] (/Users/thomashunt/Desktop/react_express_starter/node_modules/express/lib/router/layer.js:95:5) [0] в /Users/thomashunt/Desktop/react_express_starter/node_modules/express/lib/router/index.js:281:22 [0] в Function.process_params (/ Users / thomashunt / Desktop / Reaction_express_starter / node_modules / express/lib/router/index.js:335:12) [0] на следующем (/ Users / thomashunt / Desktop / Reaction_express_starter / node_modules / express / lib / router / index.js: 275: 10) [0] в urlencodedParser (/Users/thomashunt/Desktop/react_express_starter/node_modules/body-parser/lib/types/urlencoded.js:82:7)

// end

файл js сервера

const nodemailer = require('nodemailer')
const path = require('path')
const express = require('express')
const app = express()
const port = 5000
const cors = require('cors')
app.use(cors())
const bodyParser = require('body-parser')
app.use(bodyParser.json())
// to support JSON-encoded bodies
app.use(
  bodyParser.urlencoded({
    // to support URL-encoded bodies
    extended: true
  })
)

app.get('/home', (req, res) => {
  console.log(
    'Hello from .get /home',
    req.body.generalDetails,
    req.body.firstName,
    req.body.mName
  )
})


const http = require('http');



app.post('/home', (req, res) => {

  var server = http.createServer(app)
  server.listen(3000, function () {
    console.log('Express is running on port 3000')
  })


  app.use(express.bodyParser());

  app.post('/formProcess', function (req, res) {
      var data=req.body;

      var smtpTransport = nodemailer.createTransport("SMTP",{
         service: "Gmail",
         auth: {
         user: "email",
         pass: "pass"
         }});

     smtpTransport.sendMail({  //email options
     from: "thomas.hunt@careertrackers.org.au",
     to: "thomas.hunt@careertrackers.org.au", // receiver
     subject: "Emailing with nodemailer", // subject
     text:req.body.generalDetails,
     html: "here your data goes"// body (var data which we've declared)
      }, function(error, response){  //callback
           if(error){
             console.log(error);
          }else{
             console.log("Message sent: " + res.message);
         }

     smtpTransport.close();
      }); });

  let data = [{
    //page one data
    generalDetails: req.body.generalDetails,
    fName: req.body.fName,
    mName: req.body.mName,
    lName: req.body.lName,
    email: req.body.email,
    gender: req.body.gender,

   }];

   res.json(data);

 }

);

app.listen(port, () => `Server running on port ${port}`);

1 Ответ

1 голос
/ 21 мая 2019

Вы правильно определили промежуточное ПО в верхней части приложения: app.use(bodyParser.json());

Вы также определили его еще раз в своем коде, что неверно с последних версий Expressне идите со встроенным промежуточным программным обеспечением для анализатора тела.

Удалить эту строку : app.use(express.bodyParser());

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...