我正在学习nuxt.js,因此我决定用它创建一个小项目。我读了一些文档。我有些不明白。
如果 Nuxt 可以使用多个后端框架(express,hapi,koa等),我可以使用 sequelize 之类的东西来创建一个完整的应用程序吗?
例如,我使用 express 和 sequelize 访问数据库。然后使用 nuxt 的 asyncData 将其呈现到我的组件中,而无需使用 axios 进行获取。可能吗?需要一些有关此的信息
答案 0 :(得分:0)
Nuxt.js是后端不可知的-意味着您可以使用任何后端技术来驱动Nuxt.js(或Vue.js)应用程序。您可以使用express和sequelize创建后端。您不能直接从nuxt访问数据库,需要创建将在asyncdata中提供数据的接口。
<script>
import Customers from '~/plugins/Customers.js'
export default{
asyncData ({ params }) {
return Customers.getCustomers()
.then(result => { customers: result.users})
}
}
</script>
在下面的示例中,getCustomers()返回一个Promise,其中包含用户。 在Customers.js中,创建一个将访问数据库的接口。希望这能给您一个实现的思路,始终建议您抽象化前端和后端,以便将来如果您希望更改后端堆栈,则可以轻松进行更新,也可以向快递服务器发出API请求在您的asyndata中会很好。
答案 1 :(得分:0)
您不能直接从 AttributeError Traceback (most recent call last)
<ipython-input-34-04ae8dbf024e> in <module>()
15 plt.imshow(new_array, cmap = plt.cm.binary)
16 plt.show()
---> 17 user_test = user_test.reshape(-1,img_size,img_size)
18 user_test = tf.keras.utils.normalize(new_array, axis = 1)
19 predicted = model.predict([[user_test]])
AttributeError: 'str' object has no attribute 'reshape'
调用数据库,因为这在浏览器中运行时不起作用。
您在网站上访问的第一个页面将被服务器渲染,因此理论上您可以从您的 Vue 代码发出数据库请求。但是所有后续页面都在浏览器中呈现(包括运行 asyncData
),因此将不再起作用。
也许它适用于仅在构建过程中运行 asyncData
的完全静态站点。当我尝试它时,我在让数据库访问代码与 Webpack 构建完美配合时遇到问题,我放弃了。