建立节点应用程序结构
遵循节点Express文件夹架构来构建RESTful API。
目录
|___package.json
|
|___app.js
|
|___controller
| |__index.js
| |__users.js
|
|___models
| |__users
| |__signup.js
# 节点快车4
让我们看看如何使用Node.js和Express创建用于用户注册的RESTful API。使用Node Express,我们可以轻松管理GET,POST,PUT,DELETE请求。
在下面的教程中,我们将看到POST方法,该方法将使用RESTful API将用户的详细信息存储到数据库中
安装依赖项
让我们从以下相关的依赖关系开始。
将要使用以下节点模块来处理会话:
- 节点快车4
- 身体解析器
- 的MySQL
通过以下命令安装依赖项。
$ npm install
package.json
{
"name": "expapp",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"async": "^1.5.2",
"body-parser": "^1.14.1",
"express": "^4.13.3",
"express-session": "^1.12.1",
"http-proxy": "^1.12.0",
"mysql": "^2.9.0",
"node-mysql": "^0.4.2",
}
}
初始化& Require
首先将包括require节点模块。另外,连接MySql以获取POST数据。
SEE:在NodeJS中连接Mysql数据库 这里
app.js
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var session = require('express-session');
var db = require('./models/db.js');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));// 身体解析器 use JSON data
if(GLOBAL.SQLpool === undefined){
GLOBAL.SQLpool = db.createPool(); //create a global sql pool connection
}
app.use(require('./controllers'));
app.listen('3000', function(){
console.log("Connected on port 3000.");
});
控制器目录
控制器定义您的应用程序路由及其逻辑。控制器将处理Web请求,将模板提供给用户,并与模型进行交互以处理和检索数据。它是连接和控制您的Web应用程序的粘合剂。
控制器索引文件控制当前目录中的所有文件并导出到模型。
/controller/index.js
var express = require('express')
, router = express.Router();
router.use('/api/users', require('./users'));
module.exports = router;
哪里 /controller/users.js 控制添加用户信息的请求。
/controller/users.js
var express = require('express'),
router = express.Router(),
signup = require('../models/users/signup.js');
router.post('/signup', function(req, res) {
signup.addUser(req, res, function(err, data) {
if (err) {
res.json({ 'error': true, 'message': 'Error adding user .. !' });
} else {
res.json({ 'success': true, 'message': 'User added succesfully' });
}
});
});
module.exports = router;
型号目录
模型是您与数据库进行交互的文件。它们包含将处理您的数据的所有方法和功能。这包括用于创建,读取,更新和删除项目的方法。
/models/users/signup.js
var mysql = require("../db.js"),
mysqlPool = mysql.createPool(); // connects to Database
/**
* Defines 注册 operations.
* @class
*/
var signup = function(){};
/**
* save user data
* @Function
* @param callback
* @param feedbackQuery
*/
signup.prototype.addUser = function(req, res, callback){
var nowDate = new Date().toISOString().slice(0, 19).replace('T', ' '),
params = [req.body.name, req.body.email, req.body.password,req.body.role, req.body.contact, req.body.gender, req.body.dob, req.body.address],
feedbackQuery = 'INSERT INTO users (name,email,password,role,contact,gender,dob,address) VALUES (?,?,?,?,?,?,?,?)';
mysqlPool.getConnection(function(err, connection){
connection.query(feedbackQuery, params, function(err, rows, fields) {
if(err){
connection.release();
callback(true, null);
}else{
connection.release();
callback(null, true);
}
});
});
}
module.exports = new signup();
邮递员API应用演示

