最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

无法阅读快递中的财产

IT培训 admin 5浏览 0评论

无法阅读快递中的财产

对不起,知道这些问题很受欢迎,但我找不到答案。

有输出

无法读取undefined的属性'title'

链接到此文件中的发布请求

const express = require('express');
const router = express.Router();

router.get('/', function (req, res, next) {
    let query = 'select event.id,   event.title,    event.description,  event.date, place.title as place,   organisator.title as organisator,   subcategory.title as subcategory from ((event inner join place on event.place_id = place.id) inner join organisator on eventanisator_id = organisator.id) inner join subcategory on event.subcategory_id = subcategory.id';
    res.locals.connection.query(query, function (error, results, fields) {
        if (error) throw error;
        res.render('index', { title: 'Events', data: results });
    });
});

router.post('/add', function (err, req, res) {
    const query = "insert into event (title, description, event.date, subcategory_id, place_id, organisator_id) values ('" + req.body.title + "','" + req.body.description + "','" + req.body.date + "',(SELECT id from subcategory WHERE title = '" + req.body.subcategory + "'),(SELECT id from place WHERE title = '" + req.body.place + "'),(SELECT id from organisator WHERE title = '" + req.bodyanisator + "'))";
    connection.query(query, function (err) {
        if (err) {
            console.error(err);
            throw err;
        }
    });
});

抱歉滚动,只是有这样的疑问。找到一些答案,身体解析器应该在任何事情之前使用,但我想我没有这样的问题。有我的app文件。

const express = require('express');
const path = require('path');
const logger = require('morgan');
const bodyParser = require('body-parser');

var app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

app.use(logger('dev'));
app.use(express.static(path.join(__dirname, 'public')));

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

var mysql = require("mysql");
app.use(function(req, res, next){
    res.locals.connection = mysql.createConnection({
        host     : 'localhost',
        user     : 'root',
        password : 'Strange3865hum31315',
        database : 'minskevents'
    });
    res.locals.connection.connect();
    next();
});

app.use('/', require('./routes/index'));
app.use('/events', require('./routes/events'));

app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

app.use(function(err, req, res, next) {
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};
  res.status(err.status || 500);
  res.render('error');
});

var http = require('http');

var server = http.createServer(app);
server.listen(4000);
if(server.listening){
  console.log('Server is listening on port 4000');
}

module.exports = app;

我从html表单中获取数据

<form action="/events/add" method="POST">
        <input type="text" name="title" placeholder="Event name" />
        <input type="text" name="subcategory" placeholder="Category" />
        <input type="text" name="date" placeholder="Date" />
        <input type="text" name="place" placeholder="Place" />
        <input type="text" name="organisator" placeholder="Organisator" />
        <textarea name="description" placeholder="Description" onkeyup="adjust_textarea(this)"></textarea>
        <input type="submit" value="Add" />
      </form>
回答如下:

快递中的错误处理程序必须有4 arguments, not 3。

因此你的/add路线:

router.post('/add', function (err, req, res) {

实际上是第一个参数用req(请求)填充的正常路线,第二个参数用res(响应)填充,第三个参数用nextfunction填充。因为你命名第二个参数req你创建了一个令人困惑的场景,其中req是响应,err是请求,res是下一个函数。

因为响应没有body属性并且您已将响应命名为req,所以您的req.body.title正试图将属性设置为未定义的值(body)。重命名你的参数req, res, next,我想你会有更好的运气。

无法阅读快递中的财产

对不起,知道这些问题很受欢迎,但我找不到答案。

有输出

无法读取undefined的属性'title'

链接到此文件中的发布请求

const express = require('express');
const router = express.Router();

router.get('/', function (req, res, next) {
    let query = 'select event.id,   event.title,    event.description,  event.date, place.title as place,   organisator.title as organisator,   subcategory.title as subcategory from ((event inner join place on event.place_id = place.id) inner join organisator on eventanisator_id = organisator.id) inner join subcategory on event.subcategory_id = subcategory.id';
    res.locals.connection.query(query, function (error, results, fields) {
        if (error) throw error;
        res.render('index', { title: 'Events', data: results });
    });
});

router.post('/add', function (err, req, res) {
    const query = "insert into event (title, description, event.date, subcategory_id, place_id, organisator_id) values ('" + req.body.title + "','" + req.body.description + "','" + req.body.date + "',(SELECT id from subcategory WHERE title = '" + req.body.subcategory + "'),(SELECT id from place WHERE title = '" + req.body.place + "'),(SELECT id from organisator WHERE title = '" + req.bodyanisator + "'))";
    connection.query(query, function (err) {
        if (err) {
            console.error(err);
            throw err;
        }
    });
});

抱歉滚动,只是有这样的疑问。找到一些答案,身体解析器应该在任何事情之前使用,但我想我没有这样的问题。有我的app文件。

const express = require('express');
const path = require('path');
const logger = require('morgan');
const bodyParser = require('body-parser');

var app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

app.use(logger('dev'));
app.use(express.static(path.join(__dirname, 'public')));

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

var mysql = require("mysql");
app.use(function(req, res, next){
    res.locals.connection = mysql.createConnection({
        host     : 'localhost',
        user     : 'root',
        password : 'Strange3865hum31315',
        database : 'minskevents'
    });
    res.locals.connection.connect();
    next();
});

app.use('/', require('./routes/index'));
app.use('/events', require('./routes/events'));

app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

app.use(function(err, req, res, next) {
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};
  res.status(err.status || 500);
  res.render('error');
});

var http = require('http');

var server = http.createServer(app);
server.listen(4000);
if(server.listening){
  console.log('Server is listening on port 4000');
}

module.exports = app;

我从html表单中获取数据

<form action="/events/add" method="POST">
        <input type="text" name="title" placeholder="Event name" />
        <input type="text" name="subcategory" placeholder="Category" />
        <input type="text" name="date" placeholder="Date" />
        <input type="text" name="place" placeholder="Place" />
        <input type="text" name="organisator" placeholder="Organisator" />
        <textarea name="description" placeholder="Description" onkeyup="adjust_textarea(this)"></textarea>
        <input type="submit" value="Add" />
      </form>
回答如下:

快递中的错误处理程序必须有4 arguments, not 3。

因此你的/add路线:

router.post('/add', function (err, req, res) {

实际上是第一个参数用req(请求)填充的正常路线,第二个参数用res(响应)填充,第三个参数用nextfunction填充。因为你命名第二个参数req你创建了一个令人困惑的场景,其中req是响应,err是请求,res是下一个函数。

因为响应没有body属性并且您已将响应命名为req,所以您的req.body.title正试图将属性设置为未定义的值(body)。重命名你的参数req, res, next,我想你会有更好的运气。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论