我在Ionic应用程序中有这个代码,但我不知道如何使用Node.js创建一个API,只能通过使用Node.js将此值发送到服务器。
submitForm() {
let headers = new Headers(
{
'Content-Type': 'application/json',
'Accept': 'application/json'
});
let options = new RequestOptions({ headers: headers });
let data = JSON.stringify({
Value1: this.form.value1,
Value2: this.form.value2,
Value3: this.form.value3
});
console.log(data);
let url = 'http://localhost:3000/calculate';
console.log(url);
return new Promise((resolve, reject) => {
this.http.post(url, data, options)
.toPromise()
.then((response) => {
console.log('API Response : ', response.status);
resolve(response.json());
})
.catch((error) => {
console.error('API Error : ', error.status);
console.error('API Error : ', JSON.stringify(error));
reject(error.json());
});
});
}
答案 0 :(得分:2)
您可以使用ExpressJS
。以下示例可以帮助您
创建一个名为api
的目录,其中包含以下2个文件
在api目录中创建app.js
var http = require('http');
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/calculate', function(req, res) {
var data = req.body;
console.log('Here are your data: ', data);
res.json({message: 'you posted successfully'});
});
var port = process.env.PORT || 3000;
var server = http.createServer(app);
server.listen(port);
server.on('error', function(){
console.error('Error')
});
server.on('listening', function(){
console.log('server started on port ' + port)
});
在api目录中创建package.json
文件
{
"name": "api",
"version": "1.0.0",
"private": true,
"scripts": {
"start": "node app.js"
},
"dependencies": {
"body-parser": "~1.17.1",
"express": "~4.15.2"
}
}
现在打开命令行/终端并通过运行以下命令安装依赖项(您必须转到api
目录内)
npm install
现在您只需运行npm start
或node app.js
你应该谷歌学习和学习,并发布错误/问题的问题
更新:没有任何依赖关系或库但不推荐
最好使用像express,sailsjs等的http框架,但是如果你喜欢使用nodejs,那么下面的例子可以帮助你
var http = require('http');
var port = process.env.PORT || 3000;
var server = http.createServer(function(req, res) {
var contentType = req.headers['content-type'];
var rawData = '';
req.on('data', function (chunk) {
rawData += chunk;
});
req.on('end', function () {
if(req.method === 'POST' && req.url === '/calculate' && contentType.indexOf('application/json')>-1){
try {
const data = JSON.parse(rawData);
console.log('Your data is here: ', data);
res.writeHead(200, { 'Content-Type': 'application/json'});
var result = {message: 'you have posted successfully'}
res.end(JSON.stringify(result));
} catch (e) {
console.error(e.message);
res.writeHead(400, { 'Content-Type': 'application/json'});
var result = {message: e.message}
res.end(JSON.stringify(result));
}
} else {
res.writeHead(404, { 'Content-Type': 'application/json'});
var result = {message: 'Url not found'}
res.end(JSON.stringify(result));
}
});
});
server.listen(port);
server.on('error', function(){
console.error('Error')
});
server.on('listening', function(){
console.log('server started on port ' + port)
});
答案 1 :(得分:1)
我创建了一个示例Node.js项目,该项目使用AJAX和JSON来说明客户端/服务器请求/响应。它“仅需要”'http','path'和'fs'。
它实现了一个'calculate'函数服务器端,并且有一个显示3个输入框和一个'Calculate'按钮的网页。
这是在Github:“https://github.com/bobwirka/NodeClientServer.git”
希望这会有所帮助。