与http服务器的通信

时间:2017-03-02 13:04:02

标签: javascript node.js web httpserver

我有一些我想在本地存储的数据,并且能够动态地提取它,可能在另一个会话中,或者在浏览器关闭并且所有浏览器数据都被清除之后。

我使用http-server CLI命令运行该站点并导航到localhost以从浏览器访问它。

如何将数据发送到服务器端,以便服务器端将数据保存为文件?

我试图做一个ajax post请求,看看控制台中是否发生了什么,但它刚刚返回404,控制台中没有任何内容。

文档不提及有关帖子请求的任何内容:https://www.npmjs.com/package/http-server

PS:我必须使用http-server运行它,这是一个离线项目。

2 个答案:

答案 0 :(得分:4)

您无法单独使用http-server,因为http-server只能提供静态内容,不能用于在服务器端运行任何代码。

您必须自己编写一个后端,可能使用Express,Hapi,Restify,Loopback等框架,并使用新的后端提供您需要的静态文件,或者像现在一样保留它,但是如果您使用不同的端口来保存/检索端点和静态内容,则可能需要考虑CORS - 除非您运行反向代理,使其全部出现在同一主机名和端口上。

您可以使用文件系统保存数据,也可以使用数据库 - Mongo或Postgres等独立数据库或SQLite或Loki等嵌入式数据库。

有关如何在您自己的后端提供静态内容的示例,请参阅:

答案 1 :(得分:1)

你应该使用express这类东西。您可以轻松制作处理特定请求的方法。

以下是如何通过发送一些数据来处理 get 请求的例子

var express = require('express')
var app = express()

app.get('/', function (req, res) {
  res.send('Hello World')
})

app.listen(3000)

您可以使用节点本身的fs api来写入数据。

var fs = require('fs')
fs.writeFile('message.txt', 'Hello Node.js', (err) => {
  if (err) throw err;
  console.log('It\'s saved!');
});

注意:fs示例使用箭头函数。您可以找到更多信息here