Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 我可以使用Nuxt.js从数据库渲染数据吗?_Node.js_Vue.js_Sequelize.js_Axios_Nuxt.js - Fatal编程技术网

Node.js 我可以使用Nuxt.js从数据库渲染数据吗?

Node.js 我可以使用Nuxt.js从数据库渲染数据吗?,node.js,vue.js,sequelize.js,axios,nuxt.js,Node.js,Vue.js,Sequelize.js,Axios,Nuxt.js,我正在学习nuxt.js,所以我决定用它创建一个小项目。我读了一些文档。但有些事情我还没有完全理解 如果 Nuxt < /St>可以使用多个后端框架(Express、HAPI、膝关节炎、其他),我能使用诸如后缀> /强>之类的东西,并用它创建一个完整的堆栈应用程序吗? 例如,我使用express和sequelize访问数据库。然后使用nuxt的asyncData将其渲染到我的组件,而不使用axios获取。可能吗?需要一些关于此的信息Nuxt.js是后端不可知的 — 这意味着您可以使用任何后端技术

我正在学习nuxt.js,所以我决定用它创建一个小项目。我读了一些文档。但有些事情我还没有完全理解

如果<强> Nuxt < /St>可以使用多个后端框架(Express、HAPI、膝关节炎、其他),我能使用诸如<强>后缀> /强>之类的东西,并用它创建一个完整的堆栈应用程序吗?


例如,我使用expresssequelize访问数据库。然后使用nuxtasyncData将其渲染到我的组件,而不使用axios获取。可能吗?需要一些关于此的信息

Nuxt.js是后端不可知的 — 这意味着您可以使用任何后端技术为Nuxt.js(或Vue.js)应用程序供电。在您的情况下,您可以使用express和sequelize创建后端。您不能从nuxt直接访问数据库,您需要创建将在异步数据中提供数据的接口

<script>
import Customers from '~/plugins/Customers.js'
export default{
  asyncData ({ params }) {
    return Customers.getCustomers()
    .then(result => { customers: result.users})
  } 
}
</script>

从“~/plugins/Customers.js”导入客户
导出默认值{
asyncData({params}){
return Customers.getCustomers()
.then(结果=>{customers:result.users})
} 
}
在下面的示例中,getCustomers()返回一个包含用户的承诺。
在Customers.js中,您创建了一个可访问数据库的接口。希望这能让您了解如何实现,建议您将前端和后端抽象出来,以便将来如果您希望更改后端堆栈,可以很容易地进行更新,向asyndata中的express服务器发出API请求也很好。

您不能直接从
asyncData
调用数据库,因为在浏览器中运行时,这不起作用

您在站点上访问的第一个页面将由服务器呈现,因此理论上您可以从Vue代码发出数据库请求。但是所有后续页面都在浏览器中呈现(包括运行
asyncData
),因此不再工作


也许它可以用于完全静态的站点,其中
asyncData
仅在构建过程中运行。当我尝试它时,我在让数据库访问代码与Webpack构建良好配合方面遇到了问题,于是我放弃了。

为什么建议从asyncData发出API请求,而不仅仅是从服务器获取的数据库返回对象???@flemadap约定。从服务器获取数据完全是在
asyncData()
中完成的。您可以在
mounted()
中执行此操作,但存在差异。见: