Пусть nodejs заканчивается
Первым шагом, конечно, является установка среды Nodejs. Теперь, когда Windows имеет более быструю установку Nodejs, вы можете загрузить его напрямую:
http://www.nodejs.org/download/
Загрузите его по мере необходимости. После завершения загрузки просто перейдите на следующий шаг. После этого у нас будет среда Nodejs.
Второй шаг, чтобы облегчить наши последующие операции, мы напрямую увидели блог папки на диске D.
Затем откройте инструмент командной строки Windows, введите D Disk и введите:
Скопируйте код следующим образом: блог Express -e
Затем могут быть пакеты зависимостей внутри, нам необходимо ввести каталог блога для установки (конфигурация установки предоставляется Package.json):
Скопируйте код следующим образом: NPM Install
Таким образом, мы загружаем пакет зависимости, который зависит от пакета пакета и файлов пакета Java, и файл .NET BLL должен быть концепцией
В настоящее время наша программа готова к запуску:
Скопируйте код следующим образом: приложение Node
Скопируйте код следующим образом: D:/blog> Node AppexPress Server прослушивание на порту 3000
В настоящее время у вас будет ответ, когда вы откроете браузер:
Здесь мы используем Express (популярная структура разработки Nodejsweb) и используем механизм шаблона EJS
Структура файла
Структура каталога файлов инициализации следующая:
app.js - файл входа
package.json - это файл зависимости модуля. Когда мы используем установку NPM, он будет загружать связанные пакеты онлайн в соответствии с его конфигурацией.
node_modules - это загруженный файл модуля (package.json)
Общественные хранилище статические файлы ресурсов
Маршруты Сохранить файлы маршрутизации
Просмотры файлов шаблонов, связанных с магазином
Таким образом, наша основная структура каталогов выходит. Давайте кратко поговорим о каталоге Node_Modules здесь.
node_modules/ejs
Мы только что сказали, что загруженный модуль хранится здесь. Честно говоря, это коллекция файлов JS
Кода -копия выглядит следующим образом:
var parse = exports.parse = function (str, options) {
var options = параметры || {}
, open = options.open || Exports.open || '<%'
, close = options.close || Exports.close || '%>'
, filename = options.filename
, compiledebug = options.compiledebug! == false
, buf = "";
buf += 'var buf = [];';
if (false! == options._with) buf += '/nwith (locals || {}) {(function () {' ';
buf += '/n buf.push (/' ';
var lineno = 1;
var ementeol = false;
for (var i = 0, len = str.length; i <len; ++ i) {
var stri = str [i];
if (str.slice (i, open.length + i) == open) {
i += open.length
prefix var, postfix, line = (compiledebug? '__stack.lineno =': '') + lineno;
Switch (str [i]) {
case '=':
prefix = "', Escape ((" + line +', ';
postfix = ")), '";
++ i;
перерыв;
случай '-':
prefix = "', (" + line +', ';
postfix = "), '";
++ i;
перерыв;
по умолчанию:
prefix = "');" + line + ';';
postfix = "; buf.push ('";
}
var end = str.indexof (закрыть, i)
, js = str.substring (i, end)
, start = i
, включить = null
, n = 0;
if ('-' == js [js.length-1]) {
js = js.substring (0, js.length - 2);
ConsumeEool = true;
}
if (0 == js.trim (). indexof ('include')) {
var name = js.trim (). slice (7) .trim ();
if (! Filename) бросить новую ошибку ('опция файла для включения');
var path = resuleinclude (имя, имя файла);
включить = Read (Path, 'UTF8');
include = exports.parse (include, {filename: path, _with: false, open: open, close: close, compiledebug: compiledebug});
buf + = "' + (function () {" + include + "}) () +'";
JS = '';
}
while (~ (n = js.indexof ("/n", n))) n ++, lineno ++;
if (js.substr (0, 1) == ':') js = фильтрован (JS);
if (js) {
if (js.lastIndexof ('//')> js.lastIndexof ('/n')) js += '/n';
buf += префикс;
buf += js;
buf += postfix;
}
i + = end - start + close.length - 1;
} else if (stri == "//") {
buf += "////";
} else if (stri == "'") {
buf += "// '";
} else if (stri == "/r") {
// игнорировать
} else if (stri == "/n") {
if (consumeeol) {
Consumeeol = false;
} еще {
buf += "// n";
Lineno ++;
}
} еще {
buf += stri;
}
}
if (false! == options._with) buf += "');}) (); /n} /nreturn buf.join (' ');";
иначе buf += "');/nreturn buf.join (' ');";
вернуть BUF;
};
Точно так же, как шаблон EJS и модуль Express, который мы использовали здесь, мы затем вошли в программу EJS, чтобы посмотреть, в чем разница.
После открытия, ejs.js, мы рисуем код для чтения: мы больше знакомы с этим кодом. Это согласуется с кодом двигателя шаблона подчеркивания, и оба разрабатывают шаблон в строку.
Затем преобразуйте его в функцию с помощью метода Eval или New Function и передайте его в свой собственный объект данных для анализа.
Что касается конкретного рабочего процесса, мы еще не знаем, поэтому мы можем поместить его только в более позднюю точку для изучения. Хорошо, давайте отправимся в другие модули сейчас.
app.js
В качестве файла входа App.js играет важную роль:
Кода -копия выглядит следующим образом:
/**
* Зависимости модуля.
*/
var Express = require ('Express');
var Routes = require ('./ Routes');
var user = require ('./ routes/user');
var http = require ('http');
var path = require ('path');
var app = express ();
// все среды
app.set ('port', process.env.port || 3000);
app.set ('views', path.join (__ dirname, 'views'));
app.set ('view Engine', 'ejs');
app.use (express.favicon ());
app.use (express.logger ('dev'));
app.use (express.json ());
app.use (express.urlencoded ());
app.use (express.methodoverride ());
app.use (app.router);
app.use (express.static (path.join (__ dirname, 'public')));
// только разработка
if ('разработка' == app.get ('env')) {
app.use (Express.ErrorHandler ());
}
app.get ('/', routes.index);
app.get ('/users', user.list);
http.createserver (app) .listen (app.get ('port'), function () {
console.log ('Express Server Suild on Port' + app.get ('port'));
});
Мы загружаем модули Express и HTTP через команду require () и загружаем пользователь Index и другие файлы шаблонов в каталоге маршрутов.
app.set ('port', process.env.port || 3000) - это порт при запуске
app.set ('views', __dirname + '/views') - это путь для хранения файла шаблона. Где __dirname является глобальной переменной, хранящей каталог, где находится текущий сценарий. Мы можем просмотреть это таким образом:
Кода -копия выглядит следующим образом:
console.log (__ dirname); // index.js добавить следующий код
/**
D:/blog> Приложение узла
Express Server Li
D:/блог/маршруты
*/
Что касается этого __dirname
app.set ('view Engine', 'ejs') устанавливает шаблонный двигатель на EJS
app.use (express.favicon ()) предназначен для установки значка для его изменения, а затем вы можете создать файл изображений ниже.
app.use (express.logger ('dev')); Express зависит от Connect, а встроенное промежуточное программное обеспечение выведет несколько журналов.
app.use (express.json ()); используется для анализа корпуса запроса, где строка будет динамически преобразована в объект JSON
app.use (express.methodoverride ()); Подключить встроенное промежуточное программное обеспечение для обработки запросов POST и может замаскировать PUT и другие методы HTTP
app.use (app.router); Вызовать правила разрешения маршрутизатора
app.use (express.static (path.join (__ dirname, 'public'))); Подключите встроенное промежуточное программное обеспечение, установите в корневом каталоге для хранения статических файлов
Кода -копия выглядит следующим образом:
if ('разработка' == app.get ('env')) {
app.use (Express.ErrorHandler ());
}
Это предложение означает, что информация об ошибках должна быть выведена в условиях разработки
Кода -копия выглядит следующим образом:
app.get ('/', routes.index);
app.get ('/users', user.list);
Эти два предложения представляют собой конкретные файлы обработки во время доступа. Например, при доступе к непосредственному доступу доступ по умолчанию - это routes.index.
Затем это фактически анализирует данные шаблона внутри:
Кода -копия выглядит следующим образом:
exports.index = function (req, res) {
console.log (__ dirname);
res.render ('index', {title: 'Express'});
};
Наконец, приведенный выше код будет вызван для создания HTTP -сервера и прослушивания порта 3000. После успеха вы можете получить доступ к нему на веб -странице.
маршрутизация
Мы использовали этот метод для построения маршрута
Кода кода выглядит следующим образом: app.get ('/', routes.index);
Приведенный выше код может быть заменен этим кодом (написан в приложении)
Кода -копия выглядит следующим образом:
app.get ('/', function (req, res) {
res.render ('index', {title: 'Express'});
});
Этот код означает, что при доступе к домашней странице двигатель шаблона EJS вызывается для отображения файла шаблона index.ejs
Теперь сделайте некоторые модификации. Приведенный выше код реализует функцию маршрутизации, но мы не можем поместить связанный с маршрутизацией код в приложение. Если слишком много маршрутов, приложение станет раздутым, поэтому мы поместили соответствующую конфигурацию в индекс
Поэтому удалите соответствующие функции маршрутизации в приложении и добавьте код в конце приложения:
Кода -код выглядит следующим образом: маршруты (App);
Затем измените index.js
Кода -копия выглядит следующим образом:
module.exports = function (app) {
app.get ('/', function (req, res) {
res.render ('index', {title: 'Express'});
});
};
То, как этот код организован, еще не ясно, поэтому я больше не буду обращать на это внимание. Давайте посмотрим на это позже
Правила маршрутизации
Express Encapsulage несколько HTTP -запросов, мы обычно используем Get/Post Two
Кода -копия выглядит следующим образом:
app.get ();
app.post ();
Первым параметром является путь запроса, второй параметр - это функция обратного вызова, или два параметра являются запросом и ответом
Затем для REQ (запрос) есть следующие правила
REQ.QUERY RANDELS GET GETST и получает параметры запроса GET
REQ.PARAMS RANDELS /: XXX FORM GET или POST Запрос
req.body обрабатывает запрос сообщения и получает тело запроса post
req.params обрабатывает запросы get and pust, но приоритет поиска-req.params-> req.body-> req.query
Правила пути также поддерживают регулярность, мы поговорим о деталях позже ...
Добавить правила маршрутизации
Когда мы получаем доступ к ссылке, которой не существует:
Поскольку не существует правила маршрутизации для /y, он не говорит файл под общественностью, так что это 404
Теперь добавляем соответствующий маршрут в index.js:
Кода -копия выглядит следующим образом:
module.exports = function (app) {
app.get ('/', function (req, res) {
res.render ('index', {title: 'Express'});
});
app.get ('/y', function (req, res) {
res.send ('ye xiaochai');
});
};
Здесь у меня есть искаженная страница:
Причина в том, что после загрузки мой файл - кодирование GBK. Нам просто нужно изменить его на UTF-8. Мы не заботимся о шаблонном двигателе. Давайте перейдем к следующему разделу.
Регистрационная функция
Здесь мы следуем за исходным блоггером, чтобы выполнить простую регистрационную функцию, используем Mongo DB в качестве базы данных, а затем мы улучшим функции в свою очередь
Создайте новый маршрут регистра и создайте для него новый шаблон регистра, так что давайте начнем
① Создать новый маршрут в индексе
Кода -копия выглядит следующим образом:
app.get ('/regist', function (req, res) {
res.render ('index', {title: 'Register Page'});
});
Кода -копия выглядит следующим образом:
module.exports = function (app) {
app.get ('/', function (req, res) {
res.render ('index', {title: 'Express'});
});
app.get ('/y', function (req, res) {
res.send ('ye xiaochai');
});
app.get ('/regist', function (req, res) {
res.render ('Register', {title: 'register page'});
});
Кода -копия выглядит следующим образом:
<! Doctype html>
<html>
<голова>
<title> < %= title %> </title>
<link rel = 'styleSheet' href = '/styleSheets/style.css'/>
</head>
<тело>
<h1> < %= title %> </h1>
<form method = "post">
<div> Имя пользователя: <input type = "text" name = "name"/> </div>
<div> Пароль: <input type = "password" name = "password"/> </div>
<div> <input type = "prope" value = "login"/> </div>
</form>
</body>
</html>
Таким образом, наша страница сформирована:
С помощью базовой программы нам теперь нужна поддержка базы данных, поэтому нам нужно установить среду MongoDB
Mongodb
MongoDB - это NOSQL на основе распределенного хранилища файлов. Это написано в C ++. Структура данных, поддерживаемая MongoDB, свободна, похожа на JSON. Мы знаем, что JSON может поддерживать любой тип, поэтому мы можем создать очень сложную структуру.
Кода -копия выглядит следующим образом:
{
ID: 1,
Название: 'ye xiaochai',
Frinds: [
{id: 2, имя: 'su huanzhen'},
{id: 3, имя: 'одностраничная книга'}
]
}
Установите MongoDB
Сначала перейдите по адресу http://www.mongodb.org/downloads, чтобы загрузить файл установки, затем скопируйте файл на диск D и переименовать его Mongodb, а затем создайте новую папку блога внутри
Затем откройте инструмент командной строки, чтобы переключить каталог на бин и ввести:
Скопируйте код следующим образом: mongod -dbpath d:/mongodb/blog
Установите папку блога в каталог проектов и запустите базу данных. Для удобства мы напишем команду и нажмите непосредственно, чтобы запустить базу данных:
Скопируйте код следующим образом: d: /mongodb/bin/mongod.exe -dbpath d:/mongodb/blog
Ссылка на MongoDB
После того, как база данных успешно установлена, нашей программе также нуждается в соответствующей программе «Драйвер» для связи базы данных. Конечно, пакет должен быть загружен ...
Open Package.json, чтобы добавить новую линию в зависимости
Кода -копия выглядит следующим образом:
{
"Имя": "Приложение-имени",
"Версия": "0,0,1",
«Частный»: правда,
"Скрипты": {
"Start": "node app.js"
},
"Зависимости": {
"Express": "3.4.8",
"EJS": "*",
"mongodb": "*"
}
}
Затем запустите NPM Install, чтобы загрузить новый пакет зависимости. Таким образом, доступны водители, связанные с MongoDB. Чтобы связать MySQL и другие базы данных, необходимы другие пакеты зависимостей.
В настоящее время создайте файл forte.js в корневом каталоге, чтобы сохранить информацию о подключении к базе данных
Кода -копия выглядит следующим образом:
module.exports = {
cookiesecret: 'myblog',
DB: «Блог»,
Ведущий: 'Localhost'
};
DB - это имя базы данных, хост - это адрес базы данных, CookieEcret используется для шифрования файлов cookie и не имеет ничего общего с базой данных
Далее, создайте новую папку модели в корневом каталоге и создайте новый DB.JS в папке моделей
Кода -копия выглядит следующим образом:
настройки var = require ('../ settings'),
Db = require ('mongodb'). Db,
Connection = require ('mongodb'). Соединение,
Server = require ('mongodb'). Server;
module.exports = new db (stens.db, новый сервер (sutres.host, connection.default_port), {safe: true});
Копия кода выглядит следующим образом: New DB (stens.db, новый сервер (sutres.host, connection.default_port), {safe: true});
Установите имя базы данных, адрес базы данных и порт базы данных для создания экземпляра базы данных и экспортировать экземпляр через module.exports, чтобы база данных можно было прочитать и записано по требованию
Нам нужно успешно записать в базу данных, и программа на стороне сервера необходимо для обработки информации о сообщении, поэтому мы создаем новый user.js в папке моделей
Кода -копия выглядит следующим образом:
var mongodb = require ('./ db');
Пользователь функции (пользователь) {
this.name = user.name;
this.password = user.password;
};
module.exports = user;
// хранение информации пользователя
User.prototype.save = function (обратный вызов) {
// пользовательский документ для сохранения в базе данных
var user = {
Имя: это.
Пароль: this.password
};
// Откройте базу данных
mongodb.open (function (err, db) {
if (err) {
вернуть обратный вызов (ERR); // ошибка, вернуть информацию об ошибке
}
// Читать коллекцию пользователей
db.collection («Пользователи», функция (err, collection) {
if (err) {
mongodb.close ();
вернуть обратный вызов (ERR); // ошибка, вернуть информацию об ошибке
}
// вставить пользовательские данные в коллекцию пользователей
collection.insert (пользователь, {
Безопасно: правда
}, function (err, user) {
mongodb.close ();
if (err) {
вернуть обратный вызов (ERR); // ошибка, вернуть информацию об ошибке
}
обратный вызов (null, user [0]); //Успех! err is null и возвращает хранимый пользовательский документ
});
});
});
};
Кода -копия выглядит следующим образом:
// Читать информацию пользователя
User.get = function (name, callback) {
// Откройте базу данных
mongodb.open (function (err, db) {
if (err) {
return callback (err); // error, вернуть информацию об ошибке
}
// Читать коллекцию пользователей
db.collection («Пользователи», функция (err, collection) {
if (err) {
mongodb.close ();
return callback (err); // error, вернуть информацию об ошибке
}
// Найти документ с именем значения имени пользователя (имени)
collection.findone ({
Имя: Имя
}, function (err, user) {
mongodb.close ();
if (err) {
вернуть обратный вызов (err); // Не удастся! Вернуться к ERR Информации
}
обратный вызов (null, пользователь); // успех! Вернуть информацию пользователя запроса
});
});
});
};
Здесь один записывает данные, а другой считывает данные. Есть процессор. Теперь вам нужно добавить следующую программу перед index.js.
Кода кода следующая: var user = require ('../ models/user.js');
Измените app.post ('/regist')
Кода -копия выглядит следующим образом:
app.post ('/regist', function (req, res) {
var name = req.body.name;
var pwd = req.body.password;
var newuser = новый пользователь ({
Имя: Имя,
Пароль: PWD
});
newuser.save (function (err, user) {
// Связанные операции, сеанс записи
res.send (пользователь);
});
});
Затем нажмите, чтобы зарегистрироваться, и у вас будет реакция
Если вы не можете определить, следует ли записать в базу данных в настоящее время, вы можете ввести базу данных для запроса и сначала переключиться в каталог базы данных
Скопируйте код следующим образом: d:/mongodb/bin>
входить:
Скопируйте код следующим образом: Mongo
Затем переключите свою базу данных, чтобы подключиться к блогу
Скопируйте код следующим образом: Используйте блог
Последний вход
Скопируйте код следующим образом: db.users.find ()
Мы все с радостью видели написанные данные, поэтому сегодняшнее обучение на какое -то время подошло к концу
Заключение
Сегодня мы следовали блогу, чтобы завершить операцию от установки до написания в базу данных. Давайте добавим другие аспекты завтра и постепенно углубляем изучение Nodejs.