Výmena dát medzi 2 servermi (CORS) vyústi v Segmentation fault (core dumped) errno 139 rubrika: Programování: JavaScript

11 Mlocik97
položil/-a 22.2. 16:53
 
upravil/-a 22.2. 16:55

Zdravím,

Mám na localhoste 2 servery (na porte 3000 a na porte 8080) medzi ktorými potrebujem vymeniť dáta. Na serveri, z ktorého dáta posielam mám tento kód:

...
 
setInterval(function () {
    ps.snapshot().then(function (tasks) {
        axios.post('localhost:3000/post', JSON.stringify(tasks)).then(function () {
            console.log('POSTed')
        })
    })
}, 1000)
 
...

v prípade prijímacieho serveru mám nasledovný kód:

...
 
let app = express() // taktéž používané polka()
app.use(
    compression({ threshold: 0 }),
    sirv('static', { dev }),
    sapper.middleware(),
    bodyParser.json(),
    cors()
)
 
app.post('/post', (req, _res) => {
    console.log('prijate data')
})
 
...

Avšak odosielací server vyhodí chybu Segmentation fault (core dumped) errno 139

Ani jeden console.log sa nevypíše.

odkaz Vyřešeno
5 vit.herman
odpověděl/-a 24.2. 17:54

Jestli to vyhazuje přímo odesílací proces, bude se nejspíš jedna o chybu přímo Node.js. Pokud to tedy skutečně nedělá ps.snapshot(). Axios je podle mne jen JavaScript bez vazby na knihovnu. Záleží nějak na postovaném obsahu? Spadne to i při postu triviálního stringu?

Komentáře

  • Mlocik97 : áno spadne to pri ľubovoľných dátach. Skusím preinštalovať Node.js, mám verzi 10 zo Snapu. 24.2. 18:14
  • Mlocik97 : tak som preinštaloval node, použil node-fetch namiesto axios a vyriešilo to tú chybu, akurát mám tu inú chybu. UnhandledPromiseRejectionWarning: TypeError: Only HTTP(S) protocols are supported. Skúšal som aj sudo snap install node --classic --channel=12 aj curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - 28.2. 12:36
  • Mlocik97 : tak to pozerám tak když mám v kóde vo fetch url localhost:8080 tak to vypíše UnhandledPromiseRejectionWarning: TypeError: Only HTTP(S) protocols are supported. ak dám url http://localhost:8080/ tak to vypíše ten Segmentation fault. A ešte dostávam warning The node binary used for scripts is /snap/bin/node but npm is using /snap/node/2609/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with. 28.2. 12:54
  • Mlocik97 : tak už skúšam ručnú inštaláciu podľa https://github.com/nodejs/help/wiki/Installation#how-to-install-nodejs-v... a v domovskom priečinku to node -v aj npm --version vypíše čo má, ale v projekte, když skúšam spustiť príkaz npm run, tak dostanem /bin/bash: npm: príkaz nenájdený The terminal process terminated with exit code: 127 28.2. 14:12
  • vit.herman : @Mlocik97: Tak co, vyřešeno? :-) 1.3. 22:29
  • Mlocik97 : áno podarilo sa to vyriešiť... ale neviem kde bol problém, len som pokus omyl skúšal všetko možné, aj nemožné, a zrazu to začalo "fungovať"... jediné čo viem, čo tiež trochu prispelo k tomu aby to fungovalo je bodyParser.urlencoded({ limit: '50mb', extended: true }), ale bolo tam aj mnoho ďalšieho a ani neviem čo. Ale aj tak to nefunguje zas 100% ale aspoň nemám tieto errory,... problém momentálne mám že niekde sa mi do Rest API dostáva aj prázdny object, a ten príjma server. To už ale skôr očakávam že chyba je v príjmacom servery než odosielacom. lebo console.log(req) vypíše veľa vecí, len console.log(req.body) nevypíše nič. 2.3. 11:59

Pro zobrazení všech 4 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.