ionic 后台Api服务, 使用rest-hapi , node.js 创建 RESTful API Service , 附完整源代码
2021-04-01 02:24
标签:span tip XA localhost ali initial any 打开终端 spl 使用node.js创建RESTful 的API Service, 可以选择的框架有 hapi, express 等。 这里笔者推荐使用 hapi框架,会自动创建model 的 CRUD endpoints ,简单易行。 使用过express, 还是有不少坑的, 尤其在client和server端数据交互时,使用中间件body-parse 问题不少, 笔者将在下一篇文章详述。 安装最新版本 Node.js . Node.js官方下载 使用 Visual Studio Code 打开一个空的文件夹, 比如 c:\work\ionic\hapi-demo-service , 打开Visual Studio Code的终端,输入 npm init , 出现如下所示的信息, 直接按回车使用默认设置即可。也可输入内容替换默认信息。知道出现提示 : is it OK? (yes) ,输入yes 即可。 这时会在hapi-demo-service根目录下生产package.json文件。 安装开发包。依次在终端中运行 npm i Hapi --save , npm i mongoose --save 安装 rest-hapi插件. 终端中输入 npm i rest-hapi --save 生成service入口类(或者是主类) touch index.js. (index.js 是默认设置, 请参考package.json文件,main节点。 运行成功界面如下 运行界面截图: 创建一个新的User 使用robot 3T 在 mongo DB 中查看结果, 最后,附上源代码链接 : https://github.com/amincai/hapi-demo-service 行文仓促,难免有所错漏或失误,欢迎批评指正。 @caiyaming ionic 后台Api服务, 使用rest-hapi , node.js 创建 RESTful API Service , 附完整源代码 标签:span tip XA localhost ali initial any 打开终端 spl 原文地址:https://www.cnblogs.com/caiyaming/p/9246067.html
C:\Work\Ionic\hapi-demo-service>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help json` for definitive documentation on these fields
and exactly what they do.
Use `npm install
将如下代码拷贝到index.jsconst Hapi = require("hapi");
let mongoose = require(‘mongoose‘);
let RestHapi = require(‘rest-hapi‘);
async function api(){
try {
let server = Hapi.Server({
//Amin: host is important for IOS system. If missing host, the in IOS, it would use machinename.local to replace localhost
//if post or get request raised , there‘s no response.
host: ‘localhost‘,
port: 3001
});
let config = {
appTitle: "hapi-demo-service",
version: ‘1.0.0‘,
authStrategy: false ,
mongo: {
URI: ‘mongodb://localhost/hapi-demo-service‘
}
};
config.embedAssociations = false;
await server.register({
plugin: RestHapi,
options: {
mongoose,
config
}
});
await server.start();
console.log("Server ready", server.info);
return server;
} catch (err) {
console.log("Error starting server:", err);
}
}
module.exports = api();
将以下代码拷贝到 user.model.jsmodule.exports = function (mongoose) {
let modelName = "user";
let Types = mongoose.Schema.Types;
let Schema = new mongoose.Schema({
email: {
type: Types.String,
required: true,
unique: true
},
password: {
type: Types.String,
required: true,
exclude: true,
allowOnUpdate: false
}
});
Schema.statics = {
collectionName: modelName,
routeOptions: {}
};
return Schema;
};
以下是更新后package.json的 scripts 节点 "scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node index.js"
},
C:\Work\Ionic\hapi-demo-service>node index.js 。
以下是运行界面
[14:29:03.251] 16856 LOG api/mongoose-init — Connecting to Database...:
[14:29:03.260] 16856 LOG api/mongoose-init — URI: `mongodb://localhost/hapi-demo-service`
[14:29:03.277] 16856 LOG api/mongoose-init — mongoose connected
[14:29:03.278] 16856 LOG api — Initializing Server...
[14:29:03.367] 16856 INFO api/register-hapi-swagger — hapi-swagger plugin registered
[14:29:03.367] 16856 INFO api/register-MrHorse — MrHorse plugin registered
Server ready { created: 1530253743241,
started: 1530253743467,
host: ‘CNSHAEL3Z5Z9H2‘,
port: 3001,
protocol: ‘http‘,
...
address: ‘0.0.0.0‘ }
测试api方法,这里推荐使用postman. 当然,在浏览器中也是可以测试的。DELETE /user Delete multiple users
POST /user Create one or more new users
GET /user Get a list of users
DELETE /user/{_id} Delete a user
GET /user/{_id} Get a specific user
PUT /user/{_id} Update a user
下载到本机后,终端运行 npm i
文章标题:ionic 后台Api服务, 使用rest-hapi , node.js 创建 RESTful API Service , 附完整源代码
文章链接:http://soscw.com/index.php/essay/70718.html