首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将res.json返回的内容赋值给Node.js中的变量

将res.json返回的内容赋值给Node.js中的变量
EN

Stack Overflow用户
提问于 2020-12-17 00:54:04
回答 1查看 154关注 0票数 0

我正在构建一个社交网络--为此我使用了Node.js。我是第一次接触这个主题,这是我关于这个主题的第一篇文章,如果你能理解我,我会很高兴。

在我的社交网络中,我想使用"npm“kmeans算法中的算法。

我尝试将函数返回给我的内容保持在一个变量中,然后继续进行计算。我认为这个问题很小,但我坐了几个小时,就是想不出来。

我正在添加我到目前为止所做的代码:

代码语言:javascript
复制
//kmeans.js file

const kmeans = require('kmeans-engine');

exports.addUserKmeansMatch = (req, res) => {
  const engineers = [
    // frontend engineers
    { html: 5, angular: 5, react: 3, css: 3 },
    { html: 4, react: 5, css: 4 },
    { html: 4, react: 5, vue: 4, css: 5 },
    { html: 3, angular: 3, react: 4, vue: 2, css: 3 },

    // backend engineers
    { nodejs: 5, python: 3, mongo: 5, mysql: 4, redis: 3 },
    { java: 5, php: 4, ruby: 5, mongo: 3, mysql: 5 },
    { python: 5, php: 4, ruby: 3, mongo: 5, mysql: 4, oracle: 4 },
    { java: 5, csharp: 3, oracle: 5, mysql: 5, mongo: 4 },

    // mobile engineers
    { objc: 3, swift: 5, xcode: 5, crashlytics: 3, firebase: 5, reactnative: 4 },
    { java: 4, swift: 5, androidstudio: 4 },
    { objc: 5, java: 4, swift: 3, androidstudio: 4, xcode: 4, firebase: 4 },
    { objc: 3, java: 5, swift: 3, xcode: 4, apteligent: 4 },

    // devops
    { docker: 5, kubernetes: 4, aws: 4, ansible: 3, linux: 4 },
    { docker: 4, marathon: 4, aws: 4, jenkins: 5 },
    { docker: 3, marathon: 4, heroku: 4, bamboo: 4, jenkins: 4, nagios: 3 },
    { marathon: 4, heroku: 4, bamboo: 4, jenkins: 4, linux: 3, puppet: 4, nagios: 5 }
  ];

  kmeans.clusterize(engineers, { k: 4, maxIterations: 5, debug: true }, (err, result) => {
    res.json(result.clusters)
    .then((data) => {
    let resultCluster = data; //<--- I want to perform a calculation on the object and then return it.
      res.json(resultCluster)
    })
    .catch((err) => {
      console.error(err);
      return res.status(500).json({ error: err.code });
    });
  })
};
代码语言:javascript
复制
//index.js file

const {
  addUserkMeansMatch
} = require('kmeans.js');

app.get('/kmeans', addUserkMeansMatch);
exports.api = functions.region('europe-west1').https.onRequest(app);

问题是:我想将kmeans.clusterize函数返回的信息插入到resultCluster对象中。我无法在resultCluster中输入信息。

然后,我想使用resultCluster执行计算,并返回将在使用resultCluster的计算中得到的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-17 01:43:10

您调用了两次res.json(),并且在上面毫无理由地使用了promise语法。它应该是简单的

代码语言:javascript
复制
kmeans.clusterize(engineers, { k: 4, maxIterations: 5, debug: true }, (err, result) => {
  if (err) {
    console.error(err);
    res.status(500).json({ error: err.code });
  } else {
    const data = result.clusters; 
    … // perform a calculation on the object
    res.json(data);
  }
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65327683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档