gpt4 book ai didi

javascript - 在 POST 请求后执行模块

转载 作者:搜寻专家 更新时间:2023-10-31 22:47:05 25 4
gpt4 key购买 nike

我正在尝试集成通过套接字发送实时信息(使用 socket.io),以及使用 OneSignal 平台发送推送通知。

碰巧如果我把所有东西都放在同一个模块里,不知道为什么发送通知的方法在发送信息之后没有执行,或者发送信息之前。

如果我运行命令 npm start 不会出现任何错误,但只要本地或远程服务器正在运行,通知就会到达,我不希望这种情况发生。

用户.js

  var express = require('express');
var router = express.Router();
var misocket = require('../routes/misocket');
var notificacion = require('../routes/notificacion');

/*

run module when start server run, i don't want it

notificacion();

*/

/* GET users listing. sendnote*/
router.post('/sendasig', function(req, res, next) {


console.log(misocket);//registrednote
misocket.emit("registrar",req.body);
//run here, after the send data across post request
notificacion();
console.log(req.body);

res.status(200).json({
message : "send message"
});

});

module.exports = router;

通知.js

 module.exports = function(){ 

var OnesignalNotificationApi = require('onesignal-notification');
var api = new OnesignalNotificationApi('N2FkY2ZkZWQtMGQ2MS00ZTUwLTlkM2QtODA2NmE0YjBiMzQ3',
'c4b92cce-4d59-4550-a4be-20939370e39c');

var message = {
it: 'Some message',
en: 'Some message',
es: 'Nueva Calificacion'
};

api.sendToAll(message, null, function(err, res){
console.log(err);
console.log(res);
});

};

索引.js

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});

module.exports = router;

misocket.js

var i = 0;
var ioapp;

exports.connection= function(io){

ioapp = io;

io.on('connect',function(s){
console.log("Conectado");
});

};

exports.io = ioapp;

最佳答案

用下面的代码替换你的 notification.js

 module.exports = function(){ 

var sendNotification = function (data) {
var headers = {
"Content-Type": "application/json; charset=utf-8",
"Authorization": "Basic N2FkY2ZkZWQtMGQ2MS00ZTUwLTlkM2QtODA2NmE0YjBiMzQ3"
};

var options = {
host: "onesignal.com",
port: 443,
path: "/api/v1/notifications",
method: "POST",
headers: headers
};

var https = require('https');
var req = https.request(options, function (res) {
res.on('data', function (data) {
console.log("Response:");
console.log(JSON.parse(data));
});
});

req.on('error', function (e) {
console.log("ERROR:");
console.log(e);
});

req.write(JSON.stringify(data));
req.end();
};

var message = {
app_id: "c4b92cce-4d59-4550-a4be-20939370e39c",
contents: {"en": "sample message"},
included_segments: ["All"]
};

sendNotification(message);

};

关于javascript - 在 POST 请求后执行模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44491033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com