如何使用mongodb将数据返回到Koa中的函数外

我做了这样的代码。

但是我无法从functon的collections.findOne中获取数据。

我想让该函数返回从数据库获取的数据。

最后,我想重定向'http://localhost:5000/main'。

所以我在collections.findOne函数中尝试了'ctx.redirect =“ / main”'。

但是它不起作用。

我该如何解决?

require('dotenv').config();
const Koa = require('koa');
const app = new Koa();
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/';
const serve = require('koa-static');

const bodyparser = require('koa-body');

const port = process.env.PORT || 5000;

const Router = require('koa-router');

const router = new Router();

app.use(bodyparser());
app.use(serve('../client/review-app/dist/review-app'));
app.use(router.routes());
MongoClient.connect(url,async (err,db) => {
  if (err) throw err;
  const dbo = db.db('review');

  // router.get('/',(ctx,next) => {});

  router.post('/loginAsk',next) => {
    // ctx.redirect(`www.naver.com`);
    const { id } = ctx.request.body;
    const { pw } = ctx.request.body;

    let result1 = dbo
      .collection('user')
      .findOne({ id: `${id}` },(err,result) => {
        if (err) console.log('err :',err);
        console.log('result :',result);
        // ctx.body = JSON.stringify(result);
        //ctx.redirect('/main');
        return result;
      });
    console.log('result1 :',result1);                        <====here
  });
});

app.listen(port,() => {
  console.log('Server running on port ' + port);
});
wanlili3646 回答:如何使用mongodb将数据返回到Koa中的函数外

用于回叫

require('dotenv').config();
const Koa = require('koa');
const app = new Koa();
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/';
const serve = require('koa-static');

const bodyparser = require('koa-body');

const port = process.env.PORT || 5000;

const Router = require('koa-router');

const router = new Router();

app.use(bodyparser());
app.use(serve('../client/review-app/dist/review-app'));
app.use(router.routes());
MongoClient.connect(url,async (err,db) => {
  if (err) throw err;
  const dbo = db.db('review');

  // router.get('/',(ctx,next) => {});

  router.post('/loginAsk',next) => {
    // ctx.redirect(`www.naver.com`);
    const { id } = ctx.request.body;
    const { pw } = ctx.request.body;

    let result1 = dbo
      .collection('user')
      .findOne({ id: `${id}` },(err,result) => {
        if (err) console.log('err :',err);
        ctx.redirect('/main',{result:JSON.stringify(result)});
        return result;
      });
    console.log('result1 :',result1);                        
  });
});

app.listen(port,() => {
  console.log('Server running on port ' + port);
});
本文链接:https://www.f2er.com/3165718.html

大家都在问