Привет. Я пытаюсь отправить данные с узла на python.Я читал, это возможно через 2 сервера с экспресс и Flask.Однако, когда я запускаю код, я получаю сообщение об ошибке (см. Ниже)
Python-скрипт
from flask import Flask, request
import json
app = Flask(__name__)
@app.route('/')
def index():
return "Flask server"
@app.route('/postdata', methods = ['POST'])
def postdata():
data = request.get_json()
print(data)
# do something with this data variable that contains the data from the node server
return json.dumps({"newdata":"hereisthenewdatayouwanttosend"})
if __name__ == "__main__":
app.run(port=5000)
Node-скрипт
var express = require('express');
var bodyParser = require('body-parser');
var request = require('request-promise');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.get('/postdatatoFlask', async function (req, res) {
var data = {
data1: "foo",
data2: "bar"
}
var options = {
method: 'POST',
uri: 'http://localhost:3000/postdata',
body: data,
json: true // Automatically stringifies the body to JSON
};
var returndata;
var sendrequest = await request(options)
.then(function (parsedBody) {
console.log(parsedBody);
returndata = parsedBody;
})
.catch(function (err) {
console.log(err);
});
res.send(returndata);
});
app.listen(3000);
Однако, если я сейчас пытаюсь выполнитьзапрос на публикацию с http://localhost:3000/postdatatoFlask Я получаю ошибку 404
PS C: \ Users \ danie \ Desktop \ nodepythonproject> узел nodepython {StatusCodeError: 404 - "\ n \ n \ n \ nError \n \ n \ n
Cannot POST /postdata
\ n \ n \ n "в новом StatusCodeError (C: \ Users \ danie \ node_modules \ request-обещание-core \ lib \ errors.js: 32: 15) в Request.plumbing.callback(C: \ Users \ danie \ node_modules \ request-обещание-core \ lib \ plumbing.js: 104: 33) в обратном вызове Request.RP $ [как _callback] (C: \ Users \ danie \ node_modules \ request-обещание-core \ lib \ plumbing.js: 46: 31) в Request.self.callback (C: \ Users \ danie \ node_modules \ request \ request.js: 185: 22) в emitTwo (events.js: 126: 13) вRequest.emit (events.js: 214: 7) по запросу.(C: \ Users \ danie \ node_modules \ request \ request.js: 1157: 10) в emitOne (events.js: 116: 13) в Request.emit (events.js: 211: 7) в IncomingMessage.(C: \ Users \ danie \ node_modules \ request \ request.js: 1079: 12) в Object.onceWrapper (events.js: 313: 30) в emitNone (events.js: 111: 20) в IncomingMessage.emit (события.js: 208: 7) в endReadableNT (_stream_readable.js: 1064: 12) в _combinedTickCallback (внутренний / process / next_tick.js: 138: 11) в process._tickCallback (внутренний / process / next_tick.js: 180: 9)name: 'StatusCodeError', statusCode: 404, сообщение: '404 - "\ n \ n \ n \ nError \ n \ n \ n
Cannot POST /postdata
\ n \ n \ n"', ошибка: '\ n \ n \n \ nError \ n \ n \ n
Cannot POST /postdata
\ n \ n \ n ', параметры: {метод:' POST ', uri:'
http://localhost:3000/postdata', тело: {data1: 'foo', data2: 'bar '}, json: true, обратный вызов: [Функция: обратный вызов RP $], преобразование: неопределенное, простое: true, resolWithFullResponse: false, transform2xxOnly: false}, ответ: IncomingMessage {_readableState: ReadableState {objectMode: false, highWaterMark: 16384, буфер: [Объект], длина: 0, каналы: ноль, pipeCount: 0, поток: истина, конец: истина, endEmitted: истина, чтение: ложь, синхронизация: истина, needReadable: ложь, emittedReadable: ложь, readableListening: false, resumeScheduled: false, уничтожено: false, defaultEncoding: 'utf8', awaitDrain: 0, readMore: false, декодер: null, кодировка: null}, читаемое: false, домен: null, _events: {end: [Array], закрыть: [Array], данные: [Function], ошибка: [Function]}, _eventsCount: 4, _maxListeners: undefined, сокет: Socket {connection: false, _hadError: false, _handle: null, _parent: null, _host: 'localhost', _readableState: [Object], читаемый: false, домен: null, _events: [Object], _eventsCount: 8, _maxListeners: undefined, _writableState: [Object], доступный для записи: false, allowHalfOpen: false, _bytesDispatched: 175, _sockname: null, _pendingData: null, _pendingEncoding: '', server: null, _server: null, parser: null, _httpMessage: [Object], _idleNext: null, _idlePrev: null, _idleTimeout: -1, [Symbol (asyncId)]: 22, [Symbol (bytesRead)]: 392}, соединение: Socket {connection: false, _hadError: false, _handle: null, _parent: null, _host: 'localhost', _readableState: [Object], readable: false,домен: нюll, _events: [Object], _eventsCount: 8, _maxListeners: undefined, _writableState: [Object], доступная для записи: false, allowHalfOpen: false, _bytesDispatched: 175,_sockname: null, _pendingData: null, _pendingEncoding: '', сервер: null, _server: null, parser: null, _httpMessage: [Object], _idleNext: null, _idlePrev: null, _idleTimeout: -1, [Symbol (asyncId)]: 22, [Symbol (bytesRead)]: 392}, httpVersionMajor: 1, httpVersionMinor: 1, httpVersion: '1.1', завершено: true, заголовки: {'x-powered-by': 'Express', 'content-security-policy ':' default-src \ 'self \' ',' x-content-type-options ':' nosniff ',' content-type ':' text / html;charset = utf-8 ',' content-length ':' 148 ', дата:' Fri, 21 Sep 2018 17:36:52 GMT ', соединение:' close '}, rawHeaders: [' X-Powered-By ', 'Express', 'Content-Security-Policy', 'default-src \' self \ '', 'X-Content-Type-Options', 'nosniff', 'Content-Type', 'text / html;charset = utf-8 ',' Content-Length ',' 148 ',' Date ',' Fri, 21 Sep 2018 17:36:52 GMT ',' Connection ',' close '], трейлеры: {}, rawTrailers: [], обновление: false, url: '', метод: null, statusCode: 404, statusMessage: 'Not Found', клиент: Socket {connection: false, _hadError: false, _handle: null, _parent: null, _host:'localhost', _readableState: [Object], для чтения: false, домен: null, _events: [Object], _eventsCount: 8, _maxListeners: undefined, _writableState: [Object], доступный для записи: false, allowHalfOpen: false, _bytesDispatched: 175,_sockname: null, _pendingData: null, _pendingEncoding: '', сервер: null, _server: null, parser: null, _httpMessage: [Object], _idleNext: null, _idlePrev: null, _idleTimeout: -1, [Symbol (asyncId)]: 22, [Symbol (bytesRead)]: 392}, _consuming: true, _dumped: false, req: ClientRequest {domain: null, _events: [Object], _eventsCount: 5, _maxListeners: undefined, output: [], outputEncodings:[], outputCallbacks: [], outputSize: 0, доступно для записи: true, _last: true, обновление: false, chunkedEncoding: false, shouldKeepAlive: false, useChunkedEncodingByDefault: true, sendDate: false, _removedConnection: false, _removedContLen: false, _removedTE: false, _contentLength: null, _hasBody: true, _Sheader: завершения:true, сокет: [Object], соединение: [Object], _header: 'POST / postdata HTTP / 1.1 \ r \ nhost: localhost: 3000 \ r \ naccept: application / json \ r \ ncontent-type: application / json \r \ ncontent-length: 29 \ r \ nСоединение: закрыть \ r \ n \ r \ n ', _onPendingData: [Функция: noopPendingOutput], агент: [Object], socketPath: undefined, время ожидания: не определено, метод:' POST ', путь: '/ postdata', _ended: true, res: [Circular], прервано: не определено, timeoutCb: null, upgradeOrConnect: false, синтаксический анализатор: null, maxHeadersCount: null, [Symbol (outHeadersKey)]: [Object]},request: Request {domain: null, _events: [Object], _eventsCount: 5, _maxListeners: undefined, метод: 'POST', uri: [Object], body: '{"data1": "foo", "data2":"bar"} ', читаемый: правда, доступный для записи: правда, явныйMethod:true, _qs: [объект], _auth: [объект], _oauth: [объект], _multipart: [объект], _redirect: [объект], _tunnel: [объект], _rp_resolve: [функция], _rp_reject: [функция],_rp_promise: [Объект],_rp_callbackOrig: не определено, обратный вызов: [Функция], _rp_options: [Объект], заголовки: [Объект], setHeader: [Функция], hasHeader: [Функция], getHeader: [Функция], removeHeader: [Функция], localAddress: undefined,пул: {}, dests: [], __isRequestRequest: true, _callback: [функция: обратный вызов RP $], прокси-сервер: null, туннель: false, setHost: true, originalCookieHeader: undefined, _disableCookies: true, _jar: undefined, порт:'3000', хост: 'localhost', путь: '/ postdata', _json: true, httpModule: [Object], agentClass: [Object], агент: [Object], _started: true, href: '
http://localhost:3000/postdata', req: [Object], ntick: true, ответ: [Circular], originalHost: 'localhost: 3000', originalHostHeaderName: 'host', responseContent: [Circular], _destdata: true, _ended: true, _callbackCalled: true}, toJSON: [Функция: responseToJSON], без учета регистра: без учета регистра {dict: [Объект]}, чтение: [Функция], тело: '\ n \ n \ n \ nError \ n \ n \ n
Cannot POST /postdata
\ n \ n\ n '}}