Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.01.2016, 18:09
Интересующийся
Отправить личное сообщение для scorpion95 Посмотреть профиль Найти все сообщения от scorpion95
 
Регистрация: 01.08.2015
Сообщений: 24

Несколько запросов
Проблема вот в чем: написал простенький сервер на NodeJS который использует MongoDB как БД, когда делаю через аякс пост запрос в него первый раз - все гуд. Когда ещё раз - ошибки.



Код сервера:
var http = require("http");
var url = require("url");
var fs = require("fs");
var mongoose = require('mongoose');
var formidable = require('formidable');
var db = mongoose.connection;

http.createServer(function(req, res){
	switch(req.url){
		case "/":
			sendFile("public_html/index.html", res);
			break;
		case "/send":
			var form = new formidable.IncomingForm();
			form.parse(req, function(err, fields, files) {
				db.on('error', console.error);
				db.once('open', function() {
					var movieSchema = new mongoose.Schema({
						  title: { type: String }
						, rating: String
						, releaseYear: Number
						, hasCreditCookie: Boolean
					});

					var Movie = mongoose.model('Movie', movieSchema);
						
					Movie.findOne({ title: fields.name }, function(err, line) {
						if (err) { 
							res.end("Not found");
							return console.error(err);
						};
							  
						  res.end(JSON.stringify(line._doc));
					});
				});

				mongoose.connect('mongodb://localhost/test');
			});
			break;
			
		default:
			res.statusCode = 404;
			res.end("Not found");
	}
}).listen(3306);

function sendFile(fileName, res){
	res.setHeader("Content-Type", "text/html; charset=UTF-8");
	
	var file = new fs.ReadStream(fileName);
	
	file.pipe(res);
	
	file.on("error", function(err){
		res.statusCode = 500;
		res.end("Server Error");
		console.log(err);
	});
	
	res.on("close", function(){
		file.destroy();
	});
}


Помогите, плиз.
Ответить с цитированием
  #2 (permalink)  
Старый 05.01.2016, 18:22
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Из рабочего примера. И не забываем закрывать соединение
function connected(callback) {
    db.open(dbConfig.host, dbConfig.db.name, dbConfig.port, dbConfig, callback);
}

connected(function () {
            colFiles.update({_id: id}, minMax, function (err, res) {
                if (err) {
                    logError(err, __line);
                }
                if (res) {
                    console.log('End: ' + (new Date()));
                    console.log('File - ' + file + ' is parsed', __line);
                }
                db.close(); //не забываем
            });
        });
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько аякс запросов. Склеить данные. ANAGAMA AJAX и COMET 2 04.03.2015 18:01
Один или несколько асинхронных запросов? Dimaz AJAX и COMET 9 17.09.2014 10:32
несколько запросов ajax anton41k AJAX и COMET 0 15.09.2014 21:31
Несколько аякс запросов OlegOlegOleg1980 AJAX и COMET 6 15.06.2014 17:21
PHP: несколько AJAX запросов с долговременной обработкой на сервере FINoM Серверные языки и технологии 9 20.03.2012 19:50