Статьи

Простое веб-приложение Node.js, которое использует Mongoose, Express и MongoDB и возвращает JSON

Сегодня я собираюсь показать вам, как создать простое приложение, использующее Nodejs , Mongoose , Express и MongoDB , которое сохранит некоторые данные и вернет их. Он также будет иметь простой файл конфигурации, чтобы я мог настроить свои маршруты в Express. Для тех, кто не знает, Mongoose — это инструмент для моделирования объектов MongoDB, разработанный для работы в асинхронной среде, а Express — основанная на Sinatra инфраструктура веб-разработки для node.js.

Я устанавливаю и запускаю это на Ubuntu 11.x. Если вы используете OS X, вам может потребоваться внести некоторые изменения. На чистой Ubuntu 11.x я установил Node.js и NPM (менеджер пакетов узлов).

Установка Node (текущая версия на дату этой статьи v.0.6.6 , используйте пакет apt, если хотите) и NPM:

$ sudo apt-get update
$ sudo apt-get install git-core curl build-essential openssl libssl-dev
$ mkdir nodejs && cd nodejs
$ git clone https://github.com/joyent/node.git && cd node
$ git checkout v0.6.6
$ ./configure
$ sudo make install
$ node -v
$ curl http://npmjs.org/install.sh | sudo sh
$ npm -v

Теперь установите пакеты, которые нам понадобятся:

$ npm install mongoose
$ npm install express

Примечание: обратите внимание, что есть плагин express-mongoose, но я не буду использовать его для этого проекта.

Установите MongoDB с инструкциями на их сайте. Для Ubuntu это довольно просто .

Как только MongoDB будет установлен и запущен, вы готовы написать код. Там будет два файла, один для конфигурации и один для приложения.

Примечание. Существуют шаблоны JavaScript / Nodejs и рекомендации, которым вы можете следовать, этот код должен быть простым и небольшим по размеру. Отрегулируйте так, как считаете нужным.

Содержимое config.js

var config = {};
config.routes = {};
 
config.routes.feed = '/user';
 
module.exports = config;

Содержимое myapp.js

var express = require('express')
    app = express.createServer(),
    config = require('./config'),
    mongoose = require('mongoose'),
    db = mongoose.connect('mongodb://localhost/mydb'),
    Schema = mongoose.Schema;
 
var User = new Schema({
  username: String,
  title: String
});
var userModel = mongoose.model('User', User);
 
var user = new userModel();
 
user.username = 'Chad';
user.title = 'Senior Developer';
user.save(function(err) {
  if (err) throw err;
  console.log('User saved, starting server...');
  app.listen(8080);
}); 
 
app.configure( function() {
    console.log('I will be listening on: ' + config.routes.feed);
});
 
app.get(config.routes.feed, function(req, res) {
    res.contentType('application/json'); 
 
    userModel.findOne({'username': 'Chad'}, function(err, user) {
      if (user != null) {
        console.log('Found the User:' + user.username);
        res.send(JSON.stringify(user));
      }
    });
});

Запустите код:

$ node myapp.js

Откройте веб-браузер и перейдите по следующему адресу: http: // localhost: 8080 / user /

Вы должны вернуть немного JSON.

{"title":"Senior Developer","username":"Chad","id":"4eh21far10597eb52z000001"}

Код Тео довольно прост. Мы вводим необходимые библиотеки, объявляем схему и проверяем, что хотя бы одна запись находится в MongoDB перед запуском сервера. Кроме того, вы можете очень легко сделать это без Express, поскольку это такой тривиальный пример.

Если ваш веб-браузер отказывается открывать содержимое, просто измените эту строку кода:

res.contentType('application/json');

Для того, чтобы:

res.contentType('text/plain');

— просто не забудьте изменить это обратно, если вы действительно хотите передать результаты JSON целевому слушателю.

 

 

С http://www.giantflyingsaucer.com/blog/?p=3497