Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.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
Javascript node.js使用自定义模块从mysql查询中获取结果_Javascript_Node.js_Express - Fatal编程技术网

Javascript node.js使用自定义模块从mysql查询中获取结果

Javascript node.js使用自定义模块从mysql查询中获取结果,javascript,node.js,express,Javascript,Node.js,Express,如何获得select查询结果? 我得到了空/空。同样在读了一些文章之后,我尝试了回调逻辑并尝试了回调函数,但到目前为止没有运气 我的自定义模块所有代码如下 module.exports = { all: function (cb) { con.query("SELECT * from `posts`", function (err, posts, fileds) { if (err) { return cb(nul

如何获得select查询结果? 我得到了空/空。同样在读了一些文章之后,我尝试了回调逻辑并尝试了回调函数,但到目前为止没有运气

我的自定义模块所有代码如下

module.exports = {
    all: function (cb) {

        con.query("SELECT * from `posts`", function (err, posts, fileds) {
            if (err) {
                return cb(null, err);
            } else {
                return cb(null, posts);
            }
            // console.dir(posts);
        });
    },
    store: function (req, res, next) {

        // get values..
        const title = req.body.title;
        const body = req.body.body;
        const filename = (req.file != null) ? req.file.filename : null;
        var sql = "INSERT INTO `posts` (`post_id`, `title`, `body`,`file`, `created_at`) VALUES (NULL, '" + title + "', '" + body + "', '" + filename + "', CURRENT_TIMESTAMP);";
        con.query(sql, function (err) {
            console.log('Error' + err);
        });

        next();

        // redirect
        res.redirect("/admin/post");
    },
    delete: function (req, res, next) {},
    edit: function (req, res, next) {},
    update: function (req, res, next) {}
}
我试过cb(回调),但它说

类型错误:cb不是一个函数

没有运气得到结果。 请引导和帮助

另外,我在另一个类似这样的文件中获取所有函数数据

var postModel = require('../models/posts');
console.log("admin.js :" + postModel.all());

参数应该是如下所示的回调函数

postModel.all(function(response) {
    console.log(response);//you will get result here
});

创建了简单的回调函数,解决了我的问题。请参阅下面的代码

    module.exports = {
    all: function (callback) {

        const newLocal = function (err, posts) {
            if (err) {
                return callback(null, err);
            }
            else {
                // console.dir(posts);
                return callback(posts);
            }
        };
        con.query("SELECT * from `posts`", newLocal);
    },
    store: function (req, res, next) {

        // get values..
        const title = req.body.title;
        const body = req.body.body;
        const filename = (req.file != null) ? req.file.filename : null;
        var sql = "INSERT INTO `posts` (`post_id`, `title`, `body`,`file`, `created_at`) VALUES (NULL, '" + title + "', '" + body + "', '" + filename + "', CURRENT_TIMESTAMP);";
        con.query(sql, function (err) {
            console.log('Error' + err);
        });

        next();

        // redirect
        res.redirect("/admin/post");
    },
    delete: function (req, res, next) {},
    edit: function (req, res, next) {},
    update: function (req, res, next) {}
}
更新代码为:

const newLocal = function (err, posts) {
if (err) {
 return callback(null, err);
}
 else {
 // console.dir(posts);
 return callback(posts);
}
};
con.query("SELECT * from `posts`", newLocal);