如何为发布方法制作一个简单的 API



我在 Ionic 应用程序中有此代码,但我不知道如何使用 Node 制作 API.js仅使用 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());
        });
    });
  }
您可能

喜欢使用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 startnode app.js即可运行

你应该谷歌学习和学习,并发布错误/问题的问题

更新:没有任何依赖项或库,但不建议使用

最好使用http框架,如express,sailsjs等,但是如果你喜欢使用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)
});

我创建了一个示例 Node.js 项目,该项目使用 AJAX 和 JSON 说明了客户端/服务器请求/响应。它"只需要"'http'、'path'和'fs'。

它在服务器端实现了一个"计算"功能,并有一个网页,显示3个输入框和一个"计算"按钮。

它在Github上:"https://github.com/bobwirka/NodeClientServer.git"

希望这会有所帮助。