关于项目中的 service.js
我将'gnomeontherun'演示项目中所使用的配置代码黏贴上来.
来自:
https://github.com/ionic-in-action/chapter3
//注意,如果你没有配置依赖相关框架将会报错
//你可以手动单独安装这些框架
//npm install body-parser
//npm install express --save
//express是什么? Look This →_→ [url]http://www.expressjs.com.cn/[/url]
var express = require('express');
//这是nodeJs的文件系统模块,是一个简单包装的标准 POSIX 文件 I/O 操作方法集.
//这里之所以要使用我看他想读取一些演示数据 'data.json'
var fs = require('fs');
//bodyParser用于解析客户端请求的body中的内容,内部使用JSON编码处理,url编码处理以及对于文件的上传处理.
var bodyParser = require('body-parser');
var app = express();
app.use(express.static(__dirname));
app.use(bodyParser.json());
app.use(function (req, res, next) {
res.set('Content-Type', 'application/json');
next();
});
//这是一个app的http请求
app.get('/notes', function (req, res) {
// Open the existing notes file
fs.readFile(__dirname + '/data/notes.json', 'utf8', function (err, data) {
// If we get an error, log it and return
if (err) {
res.status(500).end();
return console.log(err);
}
res.status(200).send(data);
});
})
// Update a note
app.put('/notes/:id', function (req, res) {
// Open the existing notes file
fs.readFile(__dirname + '/data/notes.json', 'utf8', function (err, data) {
// If we get an error, log it and return
if (err) {
res.status(500).end();
return console.log(err);
}
// Try to parse the JSON or return
try {
data = JSON.parse(data);
} catch (e) {
res.status(500).end();
return console.log(e);
}
// Add body item to notes array
data.forEach(function (note, index) {
if (note.id == req.params.id) {
data[index] = req.body;
}
});
// Write file back to server
fs.writeFile(__dirname + '/data/notes.json', JSON.stringify(data), function (err) {
// If we get an error, log it and return
if (err) {
res.status(500).end();
return console.log(err);
}
// No errors, everything is done so return new data
res.status(200).send(data);
});
});
});
// Create a new note
app.post('/notes', function (req, res) {
// Open the existing notes file
fs.readFile(__dirname + '/data/notes.json', 'utf8', function (err, data) {
// If we get an error, log it and return
if (err) {
res.status(500).end();
return console.log(err);
}
// Try to parse the JSON or return
try {
data = JSON.parse(data);
} catch (e) {
res.status(500).end();
return console.log(e);
}
// Add body item to notes array
data.push(req.body);
// Write file back to server
fs.writeFile(__dirname + '/data/notes.json', JSON.stringify(data), function (err) {
// If we get an error, log it and return
if (err) {
res.status(500).end();
return console.log(err);
}
// No errors, everything is done so return new data
res.status(201).send(data);
});
});
});
// Delete a note
app.delete('/notes/:id', function (req, res) {
// Open the existing notes file
fs.readFile(__dirname + '/data/notes.json', 'utf8', function (err, data) {
// If we get an error, log it and return
if (err) {
res.status(500).end();
return console.log(err);
}
// Try to parse the JSON or return
try {
data = JSON.parse(data);
} catch (e) {
res.status(500).end();
return console.log(e);
}
// Add body item to notes array
var index = -1;
data.forEach(function (note, i) {
if (note.id == req.params.id) {
index = i;
}
});
// If we found an item by that id, remove it
if (index >= 0) {
data.splice(index, 1);
}
// Write file back to server
fs.writeFile(__dirname + '/data/notes.json', JSON.stringify(data), function (err) {
// If we get an error, log it and return
if (err) {
res.status(500).end();
return console.log(err);
}
// No errors, everything is done so return
res.status(204).end();
});
});
});
//App的web端口监听在这里配置.
app.listen(3000, function () {
console.log('Server started. Open http://localhost:3000 in your browser.');
});
分享到:
相关推荐
Node.js+Express+RESTful API+教程 - 本资源是一个Node.js的教程,教你如何用Express框架开发一个RESTful API,处理客户端的请求和响应,实现后端逻辑。
这是一个基于前端框架Uni-app和UI库UviewUI,结合后端技术Node.js(具体使用了Express.js中间件)实现的购物小程序源码项目。这个项目提供了完整的前后端代码,可以帮助开发者学习和理解如何构建一个实际的电子商务...
在本项目中,我们主要探讨的是使用Node.js、Express框架以及MySQL数据库来构建一个完整的后端接口技术栈,实现RESTful API。这是一个全栈开发的关键组成部分,尤其在现代Web应用程序中,它允许前端和后端之间进行...
这个项目利用了Express.js框架,它是一个轻量级且灵活的Web应用程序框架,使得构建RESTful API变得更加简单。在本文中,我们将深入探讨这个项目的各个方面,包括Node.js的基础、Express.js的使用以及如何构建一个...
对资源的描述: 该资源是一个实用的视频课程,教授开发者如何使用Node.js和Express框架构建高性能的RESTful API。课程内容包括路由、中间件、请求处理和数据库集成等关键概念,以及如何确保API的安全性和可扩展性。
在本项目中,"Node.js-node.js待办事项列表RESTfulApi"是一个使用Node.js构建的Web应用程序,它实现了一个待办事项(Todo)管理的RESTful API。RESTful API是一种设计模式,用于构建可扩展、高效且易于理解的网络...
开发仅使用Javascript完成,特别是Node.js及其后端(主要是Express.js)的库。 Express.js是Node.js的后端Web应用程序框架,旨在用于构建Web应用程序和API。 所有响应均以JSON格式返回。一些API端点请求令牌来访问...
Koa2是建立在Node.js上的一个轻量级的Web应用框架,由Express团队的成员创建,设计目的是为了提供更简洁、更优雅的API,帮助开发者快速构建可维护的服务器应用程序。 **Koa2的核心特性:** 1. **中间件机制**:Koa2...
而当我们提到"Node.js的高性能封装 Express.js"时,我们谈论的是Express.js,这是一个在Node.js平台上广泛使用的Web应用程序框架。 Express.js的核心理念是简洁和灵活性。它允许开发者快速搭建功能丰富的Web服务器...
这表明系统可能采用了前后端分离的架构,前端可能使用React、Vue.js等现代JavaScript库,与Node.js后端通过RESTful API进行通信。 在学习这个项目的过程中,可以深入了解以下知识点: 1. **Node.js基础**:理解...
这个文件名表明这是一个使用了ES2017(ECMAScript 2017,即JavaScript 2017)特性的Express RESTful API的模板项目。"boilerplate"暗示这是一份基础代码模板,"master"通常表示这是项目的主分支,代表了最新的稳定...
Node.js,Express和MongoDB项目结构这是一个基本的项目结构,可帮助您使用Express框架和MongoDB,并以基于干净的MVC架构的良好结构实践为基础,开始构建自己的RESTful Web API(适用于Android,IOS或JavaScript ...
"Node.js-一个基于koa2和mysql还有MongoDB的restfulAPI风格的node服务框架"是一个综合性的项目,涵盖了使用Node.js、Koa2构建RESTful API服务器的基本要素。它支持两种主流数据库(MySQL和MongoDB),提供自定义配置...
本篇文章将深入探讨如何使用Node.js构建RESTful API,同时也会涉及到JavaScript的基础知识,这是Node.js的主要编程语言。 首先,理解REST(Representational State Transfer,表述性状态转移)的概念至关重要。REST...
1. **Vue.js**: Vue.js 是一个轻量级的前端JavaScript框架,用于构建用户界面。它以其简单易学、灵活性和组件化特性而广受欢迎。在本项目中,Vue.js 被用来创建可复用的组件,如图表、表格和按钮,以及处理用户交互...
使用Express.js进行RESTful API开发 什么是REST? REST或表示性状态转移是一种体系结构样式,用于在Web上的计算机系统之间提供标准,从而使系统之间的通信更加容易。 符合REST的系统(通常称为RESTful系统)的特征...
基于Connect库,Express提供了一系列便利功能,使得开发者能够快速搭建RESTful API服务。 **MVC模式** MVC(Model-View-Controller)是一种软件设计模式,常用于构建Web应用。在Express中,MVC模式的应用并不严格...
- 如何使用Express.js框架,它是Node.js中最流行的Web应用框架之一,用于构建RESTful Web服务。 - 如何在RESTful API中使用HTTP方法(如GET、POST、PUT、DELETE)来创建、读取、更新和删除资源。 - RESTful API设计...
`express-mongo-rest` 是一个基于Express.js框架构建的RESTful API示例项目,专门设计用于帮助开发者快速入门API开发。Express.js是Node.js中最流行的web应用框架,它简化了创建web服务器和处理HTTP请求的过程。而...