小编典典

如何为本地提供的JSON文件创建Web服务终结点

reactjs

我正在研究React.js教程,网址为:http
://facebook.github.io/react/docs/tutorial.html

使用AJAX和post方法向页面添加评论时,我得到501 (Unsupported method ('POST'))

我知道您无法在本地发送JSON post命令(类似于此问题:angularjs $ http.post导致501 Unsupported
method(’POST’)
),并且我正在使用python -m SimpleHTTPServer

如何为JSON文件设置Web服务终结点?


阅读 248

收藏
2020-07-22

共1个答案

小编典典

如果您在github上查看reactjs / react-tutorial,则有一个使用node.js的示例服务器:

git clone [email protected]:reactjs/react-tutorial.git && cd react-tutorial
npm install
node server.js

这是server.js文件。

var fs = require('fs');
var path = require('path');
var express = require('express');
var bodyParser = require('body-parser');
var app = express();

var comments = JSON.parse(fs.readFileSync('_comments.json'));

app.use('/', express.static(path.join(__dirname, 'public')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));

app.get('/comments.json', function(req, res) {
  res.setHeader('Content-Type', 'application/json');
  res.send(JSON.stringify(comments));
});

app.post('/comments.json', function(req, res) {
  comments.push(req.body);
  res.setHeader('Content-Type', 'application/json');
  res.send(JSON.stringify(comments));
});

app.listen(3000);

console.log('Server started: http://localhost:3000/');

/**
 * This file provided by Facebook is for non-commercial testing and evaluation purposes only.
 * Facebook reserves all rights not expressly granted.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 * FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
2020-07-22