【问题标题】:Storing data in node.js在 node.js 中存储数据
【发布时间】:2014-03-02 16:32:06
【问题描述】:

我从一家涉及 HTML、CSS 和 JavaScript 的公司获得了这个评估项目。他们给我发了一个 zip 文件,我应该使用他们发送的 node.js 来实现应用程序(这是一个地址簿)。

问题是我对 node.js 了解不多。我一直在网上阅读一堆东西,但我仍然不知道如何存储数据。说明说数据已经由服务器管理,可以使用这个API进行交互:

API:

GET - api/contacts/
params: none
returns list of contacts


GET - api/contacts/:id
params: {
    id: int
}
returns contact with given id or null if contact does not exist


POST - api/contacts/
data: {
    firstName: string,
    lastName: string,
    email: string
} 
returns saved contact


PUT - api/contacts/
data: {
    id: int,
    contact: 
    {
        firstName: string,
        lastName: string,
        email: string
    }
}
return updated contact


DELETE - api/contacts/:id
params: {
    id: int
}
returns a true or false depending on if contact was successfully deleted

我不知道如何解决这个问题。这是一个前端实习职位。我考虑过使用 ajax 或其他东西,但我认为我可能只是让它变得比它必须的更复杂,因为那是后端的东西。必须有一种更简单的方法来做到这一点,比如使用函数/方法之类的?

更新

我整个星期一晚上都在复习 JavaScript(我是大学的一名大四学生,不教 JS,所以一切都是自学的)然后我什至在同一天晚上学习了主干.js。我觉得这有点复杂,所以我决定不那样做,因为我不希望公司认为我知道backbone.js。

一开始我什至不知道该做什么,因为我也不知道 node.js,所以我也不得不做很多关于它的阅读。我在想几种方法来接近它,只是真的需要一些指导,但找不到任何指导。

无论如何,非常感谢您提供的示例。看例子我学得最好。

【问题讨论】:

  • 你说他们给你发了 node js 的东西……所以后端不是已经完成了吗?

标签: javascript node.js


【解决方案1】:

它看起来像是来自发送给您的 nodejs 文件的一个 restful API,所以使用AJAX requests 是正确的做法。

例如:

$.ajax({
  type: 'POST',
  url: 'http://localhost:nodeport/api/contacts/'
  data: { firstName: 'John', lastName: 'Smith', email: 'j.smith@example.com' }
  success: function(data, status, xhr) { window.alert('Contact '+data.firstName+' saved'); }
});

将数据存储在服务器中,并在成功回调中返回保存的联系人。

【讨论】:

  • 问题是“他们向我发送了一个 zip 文件,我应该使用他们发送的 node.js 来实现应用程序(这是一个地址簿)。”和“这是一个前端实习职位”:大概这意味着 node.js 正在提供这些 URL,并且对它们的请求应该由浏览器发出。听起来问题并不在于在节点中编写 HTTP 客户端。
  • 确实我误读了那部分,请原谅我。你是对的。像主干这样的 MVC 框架可以帮助开发这样的应用程序。
  • 我在 Youtube 上找到了一个使用backbone.js 执行此应用程序的教程,但我不想完全复制代码。我想用我自己的代码来做到这一点。只需要知道如何存储数据。另外,我并不真正了解backbone.js,我不想给公司留下我知道的印象。谁能给我一个使用此 API 端点的 AJAX 请求的示例?这会很有帮助。
  • 如果nodejs文件没有保存数据,你应该实现一个简单的datastore。如果您指的是客户端,请查看storage polyfill 以获得跨浏览器(读取非 html5)兼容的解决方案。只需浏览一些文档,然后选择一个您觉得合适的文档。
  • 正如另一位评论者提到的,所有后端都已经完成,因此正在保存数据。我只是不知道如何使用这些端点来保存和检索数据。
【解决方案2】:

我认为后端数据是由 node.js 处理的,不用了。了解 REST api,您应该知道使用 GET 可以获得一些数据,使用 POST 创建和存储数据,使用 PUT 更新数据,使用 DELETE 删除数据。每个电话都会给你一个答案,这样你就知道你的 ajax 调用被后端处理得很好。作为初学者,我建议你使用 jQuery ajax 调用并尝试完成它。

【讨论】:

    【解决方案3】:

    首先,您需要使用Express 框架,您可以轻松地为您的 API 设置路由。对于数据存储,请使用 MongoDBMongoose,这是 mongodb 的一种抽象,包含一些开箱即用的有用内容。

    基本上就这些了。

    【讨论】:

    • 但是看起来你已经完成了。它只是您应该用于您的应用程序的 API 端点列表。所以这都是需要做的前端工作。
    • 我阅读了有关 MongoDB 的资料,但我需要安装它吗?我不知道如何将它与他们以 zip 文件发送的 node.js 集成。
    • 是的,我就是这么想的,因为这只是前端的东西。你能告诉我一个使用这些端点的例子吗?
    • $.get('api/contacts/', function (res) {console.log(res)});
    猜你喜欢
    • 2021-08-09
    • 2015-09-21
    • 2013-08-21
    • 2022-10-25
    • 2020-02-18
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多