首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >特快和mysql。行未定义。

特快和mysql。行未定义。
EN

Stack Overflow用户
提问于 2018-05-25 06:38:42
回答 2查看 1K关注 0票数 1

这是我的密码。我正在编写API,我想发送关于客户端输入的产品的信息。

代码语言:javascript
运行
复制
 const express = require('express');
const mysql = require('mysql');
const morgan = require('morgan');

const app = express();

app.use(morgan('short'));
app.use(express.static('./public'));
// app.get('/', (req, res, next)=>{
//     res.send('Hello World');
// });
function getConnection(){
    return  mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password:'samsung793',
        database: 'demo2'

    })
}
app.get('/models/:id', (req, res, next)=>{
    console.log('Fetching id ' + req.params.id);
    const connection = getConnection();
    const queryStr = 'SELECT * FROM products WHERE id=?'

    const modelId = req.params.id;

    connection.query( queryStr, [modelId], (err, rows, fields)=>{
        if (err){
            res.send('<h1>500 bad request</h1> Error! Sorry for error, we are working on it!');
            res.sendStatus(500);
           return;
            //throw err;
        }
        console.log('Ready');
        res.json(rows);
    })
    // res.end();
})
app.get('/:name', (req, res, next)=>{
    console.log('Fetching name ' + req.params.name);
    const connection = getConnection();
    const queryStr = `SELECT * FROM products WHERE MATCH(name) AGAINST(${req.params.name}, in natural language)`


    const modelName = req.params.name;

    connection.query( queryStr, [modelName], (err, rows, fields)=>{
        if (err){
            res.send('<h1>500 bad request</h1> <h3>Error!</h3> <h4>Sorry for error, we are working on it!</h4>');
            res.sendStatus(500);
           return;
            //throw err;
        }
        console.log('Ready');
        res.json(rows);
        console.log(rows);

    })
    // res.end();
})
app.listen(3000, ()=>{
    console.log('server is listening on port 3000');
} )

当我登录以控制行时,它是未定义的。我怎么才能修好它?有什么问题吗?很抱歉第一次发邮件。我现在编辑并添加所有代码。请帮我解决这个问题。

EN

Stack Overflow用户

回答已采纳

发布于 2018-05-25 06:47:55

查询时,需要检查是否出现错误。

代码语言:javascript
运行
复制
app.get('/:name', (req, res, next) => {
    console.log('Fetching name ' + req.params.name);
    const connection = getConnection();
    const queryStr = 'SELECT * FROM products WHERE MATCH(name) AGAINST(?, in natural language mode)';
    const modelName = req.params.name;

     connection.query( queryStr, [modelName], (err, rows, fields)=>{
        console.log('Ready');
        if(err) {
            console.log(err);
            return res.status(500).send(err);
        }
        console.log(rows);
        res.json(rows);
    })
})

如果使用准备语句,则不需要传递${req.params.name},只需传递?

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50522935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档