Node-js : Sending many attachments with Node Cisco Spark Client
I use Node Cisco Spark Client (https://github.com/marchfederico/node-sparkclient) for sending message with any attachments.
I can send 1 attachment, but not many.
This is my code :
Can you help me please ?
function postMessage(roomId,message,nbfichiers) {
return new Promise(function (fulfill, reject){
var messageParams = {}
var sanitizedMessage = '>'+message.replace(/n/g,"<br>")
if (nbfichiers.length > 0){
console.log("Nombres de pièces jointes : " + nbfichiers.length);
for(var b=0; b < nbfichiers.length; b++){
messageParams.file = fs.readFileSync('uploads/'+nbfichiers[b]+'');
messageParams.filename = nbfichiers[b];
messageParams.markdown = true
sparkClient.createMessage(roomId,sanitizedMessage,messageParams,function(err,message){
if (err) {
reject(err)
}
else {
fulfill(message)
}
});
fs.unlinkSync('uploads/'+nbfichiers[b]);
}
}
})
}
node.js cisco
add a comment |
I use Node Cisco Spark Client (https://github.com/marchfederico/node-sparkclient) for sending message with any attachments.
I can send 1 attachment, but not many.
This is my code :
Can you help me please ?
function postMessage(roomId,message,nbfichiers) {
return new Promise(function (fulfill, reject){
var messageParams = {}
var sanitizedMessage = '>'+message.replace(/n/g,"<br>")
if (nbfichiers.length > 0){
console.log("Nombres de pièces jointes : " + nbfichiers.length);
for(var b=0; b < nbfichiers.length; b++){
messageParams.file = fs.readFileSync('uploads/'+nbfichiers[b]+'');
messageParams.filename = nbfichiers[b];
messageParams.markdown = true
sparkClient.createMessage(roomId,sanitizedMessage,messageParams,function(err,message){
if (err) {
reject(err)
}
else {
fulfill(message)
}
});
fs.unlinkSync('uploads/'+nbfichiers[b]);
}
}
})
}
node.js cisco
add a comment |
I use Node Cisco Spark Client (https://github.com/marchfederico/node-sparkclient) for sending message with any attachments.
I can send 1 attachment, but not many.
This is my code :
Can you help me please ?
function postMessage(roomId,message,nbfichiers) {
return new Promise(function (fulfill, reject){
var messageParams = {}
var sanitizedMessage = '>'+message.replace(/n/g,"<br>")
if (nbfichiers.length > 0){
console.log("Nombres de pièces jointes : " + nbfichiers.length);
for(var b=0; b < nbfichiers.length; b++){
messageParams.file = fs.readFileSync('uploads/'+nbfichiers[b]+'');
messageParams.filename = nbfichiers[b];
messageParams.markdown = true
sparkClient.createMessage(roomId,sanitizedMessage,messageParams,function(err,message){
if (err) {
reject(err)
}
else {
fulfill(message)
}
});
fs.unlinkSync('uploads/'+nbfichiers[b]);
}
}
})
}
node.js cisco
I use Node Cisco Spark Client (https://github.com/marchfederico/node-sparkclient) for sending message with any attachments.
I can send 1 attachment, but not many.
This is my code :
Can you help me please ?
function postMessage(roomId,message,nbfichiers) {
return new Promise(function (fulfill, reject){
var messageParams = {}
var sanitizedMessage = '>'+message.replace(/n/g,"<br>")
if (nbfichiers.length > 0){
console.log("Nombres de pièces jointes : " + nbfichiers.length);
for(var b=0; b < nbfichiers.length; b++){
messageParams.file = fs.readFileSync('uploads/'+nbfichiers[b]+'');
messageParams.filename = nbfichiers[b];
messageParams.markdown = true
sparkClient.createMessage(roomId,sanitizedMessage,messageParams,function(err,message){
if (err) {
reject(err)
}
else {
fulfill(message)
}
});
fs.unlinkSync('uploads/'+nbfichiers[b]);
}
}
})
}
node.js cisco
node.js cisco
edited Nov 12 '18 at 20:45
Spara
3,99311341
3,99311341
asked Nov 12 '18 at 16:39
SkroS
32
32
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
By using a loop inside a new Promise(...)
you will only get the result of the first iteration when you consume the promise, is it really the behaviour that you are expecting ?
According to the node-sparkclient documentation you can only send one attachment at a time. You could send multiple attachments by using Promise.all
the following way :
function postAttachment(roomId, message, file) {
return new Promise(function (fullfill, reject){
var messageParams = {}
var sanitizedMessage = '>'+message.replace(/n/g,"<br>")
messageParams.file = fs.readFileSync('uploads/'+file);
messageParams.filename = file;
messageParams.markdown = true
sparkClient.createMessage(roomId, sanitizedMessage, messageParams, function(err,message){
if (err) {
reject(err)
}
else {
fs.unlinkSync('uploads/'+ file);
fullfill(message)
}
});
})
}
function postAttachments(roomId, message, files) {
return Promise.all(files.map(file => postAttachment(roomId, message, file));
}
If you want to send only one attachment with all the files, you could merge your files before sending them.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53266497%2fnode-js-sending-many-attachments-with-node-cisco-spark-client%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
By using a loop inside a new Promise(...)
you will only get the result of the first iteration when you consume the promise, is it really the behaviour that you are expecting ?
According to the node-sparkclient documentation you can only send one attachment at a time. You could send multiple attachments by using Promise.all
the following way :
function postAttachment(roomId, message, file) {
return new Promise(function (fullfill, reject){
var messageParams = {}
var sanitizedMessage = '>'+message.replace(/n/g,"<br>")
messageParams.file = fs.readFileSync('uploads/'+file);
messageParams.filename = file;
messageParams.markdown = true
sparkClient.createMessage(roomId, sanitizedMessage, messageParams, function(err,message){
if (err) {
reject(err)
}
else {
fs.unlinkSync('uploads/'+ file);
fullfill(message)
}
});
})
}
function postAttachments(roomId, message, files) {
return Promise.all(files.map(file => postAttachment(roomId, message, file));
}
If you want to send only one attachment with all the files, you could merge your files before sending them.
add a comment |
By using a loop inside a new Promise(...)
you will only get the result of the first iteration when you consume the promise, is it really the behaviour that you are expecting ?
According to the node-sparkclient documentation you can only send one attachment at a time. You could send multiple attachments by using Promise.all
the following way :
function postAttachment(roomId, message, file) {
return new Promise(function (fullfill, reject){
var messageParams = {}
var sanitizedMessage = '>'+message.replace(/n/g,"<br>")
messageParams.file = fs.readFileSync('uploads/'+file);
messageParams.filename = file;
messageParams.markdown = true
sparkClient.createMessage(roomId, sanitizedMessage, messageParams, function(err,message){
if (err) {
reject(err)
}
else {
fs.unlinkSync('uploads/'+ file);
fullfill(message)
}
});
})
}
function postAttachments(roomId, message, files) {
return Promise.all(files.map(file => postAttachment(roomId, message, file));
}
If you want to send only one attachment with all the files, you could merge your files before sending them.
add a comment |
By using a loop inside a new Promise(...)
you will only get the result of the first iteration when you consume the promise, is it really the behaviour that you are expecting ?
According to the node-sparkclient documentation you can only send one attachment at a time. You could send multiple attachments by using Promise.all
the following way :
function postAttachment(roomId, message, file) {
return new Promise(function (fullfill, reject){
var messageParams = {}
var sanitizedMessage = '>'+message.replace(/n/g,"<br>")
messageParams.file = fs.readFileSync('uploads/'+file);
messageParams.filename = file;
messageParams.markdown = true
sparkClient.createMessage(roomId, sanitizedMessage, messageParams, function(err,message){
if (err) {
reject(err)
}
else {
fs.unlinkSync('uploads/'+ file);
fullfill(message)
}
});
})
}
function postAttachments(roomId, message, files) {
return Promise.all(files.map(file => postAttachment(roomId, message, file));
}
If you want to send only one attachment with all the files, you could merge your files before sending them.
By using a loop inside a new Promise(...)
you will only get the result of the first iteration when you consume the promise, is it really the behaviour that you are expecting ?
According to the node-sparkclient documentation you can only send one attachment at a time. You could send multiple attachments by using Promise.all
the following way :
function postAttachment(roomId, message, file) {
return new Promise(function (fullfill, reject){
var messageParams = {}
var sanitizedMessage = '>'+message.replace(/n/g,"<br>")
messageParams.file = fs.readFileSync('uploads/'+file);
messageParams.filename = file;
messageParams.markdown = true
sparkClient.createMessage(roomId, sanitizedMessage, messageParams, function(err,message){
if (err) {
reject(err)
}
else {
fs.unlinkSync('uploads/'+ file);
fullfill(message)
}
});
})
}
function postAttachments(roomId, message, files) {
return Promise.all(files.map(file => postAttachment(roomId, message, file));
}
If you want to send only one attachment with all the files, you could merge your files before sending them.
edited Nov 12 '18 at 22:07
answered Nov 12 '18 at 17:46
MuratK
1404
1404
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53266497%2fnode-js-sending-many-attachments-with-node-cisco-spark-client%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown