Как вернуть данные в нерабочее состояние в коа с помощью mongodb - PullRequest
0 голосов
/ 04 ноября 2019

Я сделал такой код.

но я не могу получить данные из functon, collection.findOne.

Я хочу, чтобы эта функция возвращала данные, взятые из базы данных.

и, наконец, я хочуredirect 'http://localhost:5000/main'.

Итак, я попробовал ctx.redirect = "/ main" "в функции collection.findOne.

Но это не сработало.

Как можноя решаю это?

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', (ctx, 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);
});

1 Ответ

0 голосов
/ 04 ноября 2019

Для обратного вызова

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', (ctx, 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);
});
...