Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 此delete process node.js缺少什么?_Mysql_Node.js - Fatal编程技术网

Mysql 此delete process node.js缺少什么?

Mysql 此delete process node.js缺少什么?,mysql,node.js,Mysql,Node.js,编辑可以很好地工作,但它似乎与删除完全不同,因为编辑实际上会转到不同的页面。这是一个项目的一部分,我们只是将提供给我们的代码拼凑在一起,在这里和那里添加几行,但我不知道删除中缺少了什么 请求获取项目id,查询在我看来像是一个正确的删除函数,其余的只是打印结果?“删除”按钮可以工作,但我只能看到这些 删除-- app.delete('/delete/(:id)'),函数(req,res,next){ 请求getConnection(功能(错误,连接){ conn.query('DELETE f

编辑可以很好地工作,但它似乎与删除完全不同,因为编辑实际上会转到不同的页面。这是一个项目的一部分,我们只是将提供给我们的代码拼凑在一起,在这里和那里添加几行,但我不知道删除中缺少了什么

请求获取项目id,查询在我看来像是一个正确的删除函数,其余的只是打印结果?“删除”按钮可以工作,但我只能看到这些

删除--

app.delete('/delete/(:id)'),函数(req,res,next){
请求getConnection(功能(错误,连接){
conn.query('DELETE from store where id='+req.params.id,function(err,result){
如果(行数。长度)
发送
POST
请求,而不是
DELETE
HTTP请求

HTML表单只能执行
action=“POST”
action=“GET”
。您需要:

  • 在这种情况下,使用
    POST
    进行删除
  • 使用javascript执行
    DELETE
    请求。(ajax ish请求)

我猜您的
删除
表单在输入值之前就关闭了

更改html,如下所示:

<form method="post" action="/store/delete/<%= item.id %>"
    style="float:right">
    <input type="submit" name="delete" value='Delete'
    onClick="return confirm('Are you sure you want to delete?')" />
    <input type="hidden" name="_method" value="DELETE"/>
 </form>


此代码易受sql注入攻击。请使用准备好的语句,例如knex.jsIt,它不是真实的,只是一个类的脱机项目,让我们了解nodejsok,但与您的问题相关,我们需要查看调用端点的代码。我还建议打开chrome/ie/firefox开发工具(网络选项卡)当您单击“删除”查看实际发送的内容时-例如,如果id不是一个数字怎么办?@Catalyst您是指ejs文件吗?我发布了它,我想我错过了它-但是,您确定
%item.id%
具有正确的值吗?在网络调用中,您是否看到传递了正确的id?
app.get('/edit/(:id)', function(req, res, next) {

    req.getConnection(function(error, conn) {
        conn.query( 
            'SELECT * From store Where id = ' + req.params.id, function(err, rows, field) {
            // if item not found
            if (rows.length <= 0) {
                req.flash('error', 'Item not found with id = ' +
                    id )
                res.redirect('store/edit')
            } else { // if item found
                // render to views/store/edit.ejs template file
                res.render( 'store/edit' , {
                    title: 'Edit Item',

                    id: req.params.id,
                    qty:rows[0].qty ,
                    price: rows[0].price,
                    sname: rows[0].sname
                })
            }
        })
    })
})


app.put('/edit/(:id)', function(req, res, next) {
    req.assert('sname', 'Name is required').notEmpty()
    //Validate name
    req.assert('qty', 'Quantity is required').notEmpty()
    //Validate qty
    req.assert('price', 'Price is required').notEmpty()
    //Validate price
    var errors = req.validationErrors()
    if (!errors) { //No errors were found. Passed Validation!

    var item = {
        sname: req.sanitize('sname').escape().trim(),
        qty: req.sanitize('qty').escape().trim(),
        price: req.sanitize('price').escape().trim()
    }

        req.getConnection(function(error, conn) {
            conn.query('Update store set ? where id =' + req.params.id, item, function(err, result) {
                if (err) {
                    req.flash('error', err)
                    // render to views/store/edit.ejs
                    res.render('store/edit', {
                        id: req.params.id,
                        sname: item.sname,
                        qty: item.qty,
                        price: item.price
                    })

                } else {
                    req.flash('success', 'Data updated successfully!')
                    // render to views/store/edit.ejs
                    res.render('store/edit', {
                        title: 'Edit Item',
                        id: req.params.id,
                        sname: item.sname,
                        qty: item.qty,
                        price: item.price
                    })
                }
            })
        })

    }
    else {
        var error_msg = ''
        errors.forEach(function(error) {
            error_msg += error.msg + '<br>'
        })
        req.flash('error', error_msg)

        res.render( '/store/edit', {
            title: 'Edit Item,',
            id: req.params.id,
            sname: req.body.sname,
            qty: req.body.qty,
            price: req.body.price ,
        })
    }
})
<form method="post" action="/store/delete/<%= item.id %>"
        style="float:right">
        </form>
        <input type="submit" name="delete" value='Delete'
        onClick="return confirm('Are you sure you want to delete?')" />
        <input type="hidden" name="_method" value="DELETE" 
<form method="post" action="/store/delete/<%= item.id %>"
    style="float:right">
    <input type="submit" name="delete" value='Delete'
    onClick="return confirm('Are you sure you want to delete?')" />
    <input type="hidden" name="_method" value="DELETE"/>
 </form>