Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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 尝试将数据发布到mongodb时无限加载_Javascript_Node.js_Mongodb_Express - Fatal编程技术网

Javascript 尝试将数据发布到mongodb时无限加载

Javascript 尝试将数据发布到mongodb时无限加载,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,我正在创建RESTAPI,我有从MovieDB外部api返回的post/review的结束点,我希望这些评论保存在我的mongodb中 以下是我迄今为止所做的工作: app.post('/data', (req, res) => { // Create the HTTP POST. request('https://api.themoviedb.org/3/movie/401478/reviews?api_key=4d9c9de3bdf0d3b6837c49

我正在创建RESTAPI,我有从MovieDB外部api返回的post/review的结束点,我希望这些评论保存在我的mongodb中

以下是我迄今为止所做的工作:

app.post('/data', (req, res) => {
        // Create the HTTP POST.
        request('https://api.themoviedb.org/3/movie/401478/reviews?api_key=4d9c9de3bdf0d3b6837c49c086e3b190', function (error, response, body) {
        var str = '';
        // Create the listener for data being returned.
            response.on('data', function (chunk) {
                str += chunk;
            });
                // Create the listener for the end of the POST.
            response.on('end', function (){
                    db.collection('data').insert(str, (err, result) => {
                        if (err) {
                            res.send({
                                'error': 'An error has occured'
                            });
                        } else {
                            res.send(result.ops[0]);
                        }
                    });
            });
        });
    });
当我在postman post上运行localhost:8000/review时,它会保持加载,不会显示任何结果,我在这里做错了什么?

试试这个

app.post('/data', (req, res) => {
    let url = 'https://api.themoviedb.org/3/movie/401478/reviews?api_key=4d9c9de3bdf0d3b6837c49c086e3b190';
    request(url, function (error, response, body) {
        db.collection('data').insert(body, (err, result) => {
            if (err) {
                res.send({
                    'error': 'An error has occured'
                });
            } else {
                    res.send(result.ops[0]);
            }
        });
    });
});

还有,你为什么要发帖子?根据您的代码,API请求应该是localhost:8000/数据而不是localhost:8000/查看。

当您查看控制台日志结果时会发生什么情况?@feiiiii hii,我是新手,我正在使用post man测试我的API,但我无法像chrome一样检查控制台日志,尝试过,但它仍然只是加载,但这是正确的方法吗?如果我想保存来自外部api的数据,您使用的是终端/命令行,对吗?那么,如果添加控制台日志结果,当您运行节点应用程序时,您会看到什么呢?@FeIIIII应用程序在端口8000上运行,在postman中等待并等待之后,它返回错误“无法获得任何响应”,所以您在db.collection.insert下添加了console.log(result),在您发布到localhost:8000/data时仍然没有任何结果?你们能不能在app.post之后立即运行console.log(req),它有什么显示吗?我得到错误类型错误:无法在字符串上创建属性“\u id”。。。前面有审查数据