Node.js Экспресс мангуста запрос найти - PullRequest
1 голос
/ 04 февраля 2012

У меня небольшая проблема с Express и mongoose, использующими Node.js. Я вставил код в pastebin, для лучшей видимости.

Вот app.js: http://pastebin.com/FRAFzvjR Вот маршруты / index.js: http://pastebin.com/gDgBXSy6

Поскольку db.js не большой, я выкладываю его здесь:

var mongoose = require('mongoose'),
Schema = mongoose.Schema;

module.exports = function () {
    mongoose.connect('mongodb://localhost/test',
    function(err) {
        if (err) { throw err; }
    }
  );
};

var User = new Schema({
    username: {type: String, index: { unique: true }},
    mdp: String    
});

module.exports = mongoose.model('User', User);

Как вы можете видеть, я использовал console.log для отладки своего приложения и обнаружил, что в маршрутах / index.js отображается только a. Это странно, как если бы скрипт остановился (или продолжил без ответа), когда

userModel.findOne({username: req.body.username}, function(err, data)

пытался.

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 04 февраля 2012

Вы никогда не подключаетесь к своей базе данных.Ваш метод connect находится внутри db.export, но он никогда не вызывается как функция из вашего приложения.

Кроме того, вы перезаписываете свой module.exports - если вы хотите экспортировать несколько функций / классов, вынеобходимо добавить их как различные свойства объекта module.export.ie ::1003*

module.export.truthy = function() { return true; }
module.export.falsy = function() { return false; }

Когда вы затем require этот модуль, вы должны вызвать функцию (trueFalse.truthy();), чтобы получить значение.Поскольку вы никогда не выполняете функцию для подключения к вашей базе данных, вы не получаете никаких данных.

0 голосов
/ 04 февраля 2012

Несколько вещей очень быстро.

  1. Убедитесь, что вы на последней мангусте (2.5.3).Обновите файл package.json и запустите обновление npm.
  2. Попробуйте выполнить console.log(augments) перед вашим if (err).Возможно, произошла ошибка.
  3. Вы уверены, что действительно подключаетесь к базе данных?Попробуйте явно подключиться вверху вашего файла (только для тестирования) mongoose.connect('mongodb://localhost/my_database');

Я обновлю, если у меня появятся другие идеи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...